std::is_sorted
和 std::sort
是 C++ 标准库
std::is_sorted
:std::is_sorted
是一个谓词,用于检查给定范围内的元素是否已按非降序(即升序或相等)排列。如果范围内的所有元素都满足这个条件,那么该函数返回true
;否则返回false
。此外,它不会对元素进行任何排序操作。
函数原型:
template< class InputIt > bool is_sorted( InputIt first, InputIt last ); template< class InputIt, class Compare > bool is_sorted( InputIt first, InputIt last, Compare p );
参数:
first
和last
定义了要检查的范围。p
是一个可选的比较函数,用于定义“非降序”的含义。
std::sort
:std::sort
是一个操作,用于对给定范围内的元素进行排序。它使用快速排序算法(或库实现者选择的其他排序算法)对元素进行就地排序,从而使它们按升序排列。
函数原型:
template< class RandomIt > void sort( RandomIt first, RandomIt last ); template< class RandomIt, class Compare > void sort( RandomIt first, RandomIt last, Compare comp );
参数:
first
和last
定义了要排序的范围。comp
是一个可选的比较函数,用于定义排序的含义。
总结:
std::is_sorted
只是检查范围内的元素是否已排序,而不对它们进行任何操作。std::sort
对范围内的元素进行排序。- 两个函数都接受一个可选的比较函数,以便自定义排序规则。