C++中的std::is_sorted_until
std::is_sorted_until 用于查找范围[first, last)中第一个未排序的元素。它返回一个迭代器,指向范围中第一个未排序的元素,因此返回的迭代器和first之间的所有元素都是已排序的。
它还可用于计算范围内已排序元素的总数。它在头文件中定义。如果整个范围都已排序,则返回指向last的迭代器。
它可以通过以下两种方式使用:
**使用“ <”比较元素: **
语法:
template
ForwardIterator is_sorted_until (ForwardIterator first, ForwardIterator last);
first: 指向列表中第一个元素的前向迭代器。
last: 指向列表中最后一个元素的前向迭代器。
返回值: 返回指向列表中第一个未排序的元素的迭代器。
如果列表中只有一个元素或所有元素都已排序,则返回last。
输出:
通过使用预定义函数进行比较:
语法:
template
ForwardIterator is_sorted_until (ForwardIterator first, ForwardIterator last,
Compare comp);
这里,first和last与前一个示例相同。
comp: 接受范围内两个元素作为参数的二元函数,并返回可转换为bool的值。
返回的值指示是否将作为第一个参数传递的元素视为在其定义的特定严格弱排序中在第二个元素之前。
该函数不应修改任何参数。
此可以是函数指针或函数对象。
返回值: 返回指向列表中第一个未排序的元素的迭代器。
如果列表中只有一个元素或所有元素都已排序,则返回last。
输出: