std::is_sorted
是 C++ 標準庫
template< class InputIt >
bool is_sorted( InputIt first, InputIt last );
template< class InputIt, class Compare >
bool is_sorted( InputIt first, InputIt last, Compare comp );
這里有兩個版本的 is_sorted
函數,第一個版本使用 operator<
進行比較,而第二個版本允許你提供自定義的比較函數。以下是兩個版本的參數說明:
第一個版本的參數:
first
:一個輸入迭代器,指向要檢查的范圍的開始。last
:一個輸入迭代器,指向要檢查的范圍的結束。注意,這是一個尾后迭代器,不包含在范圍內。第二個版本的參數:
first
:一個輸入迭代器,指向要檢查的范圍的開始。last
:一個輸入迭代器,指向要檢查的范圍的結束。注意,這是一個尾后迭代器,不包含在范圍內。comp
:一個用于比較兩個元素的函數或函數對象。它應該返回一個布爾值,表示第一個參數是否小于第二個參數。這兩個版本的函數都返回一個布爾值,如果范圍內的元素已按非降序排列,則返回 true
;否則返回 false
。
下面是一個簡單的示例,展示了如何使用 std::is_sorted
:
#include<iostream>
#include<vector>
#include<algorithm>
int main() {
std::vector<int> v = {1, 2, 3, 4, 5};
if (std::is_sorted(v.begin(), v.end())) {
std::cout << "The vector is sorted."<< std::endl;
} else {
std::cout << "The vector is not sorted."<< std::endl;
}
return 0;
}
這段代碼將輸出 “The vector is sorted.”,因為向量 v
中的元素已按非降序排列。