在 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.