在 C++ 標(biāo)準(zhǔn)庫(kù)中,std::is_sorted
函數(shù)用于檢查一個(gè)范圍內(nèi)的元素是否已經(jīng)按升序排列。當(dāng)傳遞一個(gè)空數(shù)組(即起始迭代器等于終止迭代器)給 std::is_sorted
時(shí),函數(shù)的行為是有明確定義的。
根據(jù) C++ 標(biāo)準(zhǔn)(ISO/IEC 14882:2017),std::is_sorted
的行為如下:
true
。這意味著對(duì)于空數(shù)組,std::is_sorted
將返回 true
,因?yàn)榭諗?shù)組可以被認(rèn)為是已排序的。這與數(shù)學(xué)上的“空集是其自身的子集”的概念類似。
示例代碼:
#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.