在 C++ 标准库中,std::is_sorted
函数用于检查一个范围内的元素是否已经按升序排列。当传递一个空数组(即起始迭代器等于终止迭代器)给 std::is_sorted
时,函数的行为是有明确定义的。
根据 C++ 标准(ISO/IEC 14882:2017),std::is_sorted
的行为如下:
true
。这意味着对于空数组,std::is_sorted
将返回 true
,因为空数组可以被认为是已排序的。这与数学上的“空集是其自身的子集”的概念类似。
示例代码:
#include<iostream>
#include<vector>
#include<algorithm>
int main() {
std::vector<int> empty_vec;
if (std::is_sorted(empty_vec.begin(), empty_vec.end())) {
std::cout << "The empty vector is sorted."<< std::endl;
} else {
std::cout << "The empty vector is not sorted."<< std::endl;
}
return 0;
}
输出:
The empty vector is sorted.