| 类别: 算法 | 组件类型: 函数 |
template <class ForwardIterator>
bool is_sorted(ForwardIterator first, ForwardIterator last)
template <class ForwardIterator, class StrictWeakOrdering>
bool is_sorted(ForwardIterator first, ForwardIterator last,
StrictWeakOrdering comp)
这两个版本的is_sorted在它们如何定义一个元素是否小于另一个元素方面有所不同。第一个版本使用operator<比较对象,第二个版本使用 函数对象comp比较对象。第一个版本is_sorted返回true当且仅当对于每个迭代器i在范围内[first, last - 1), *(i + 1) < *i是false。第二个版本返回true当且仅当对于每个迭代器i在范围内[first, last - 1), comp(*(i + 1), *i)是false
int A[] = {1, 4, 2, 8, 5, 7};
const int N = sizeof(A) / sizeof(int);
assert(!is_sorted(A, A + N));
sort(A, A + N);
assert(is_sorted(A, A + N));