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#include #include int main() { std::vector 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
中的元素已按非降序排列。