C++ 算法 is_sorted_until() 函数

定义和用法

is_sorted_until() 函数返回指向数据范围内首个破坏升序规则的元素的迭代器。

如果所有元素都保持升序排列,则返回指向数据范围末尾的迭代器。

数据范围通过迭代器指定。

实例

计算已排序的元素数量:

vector<int> numbers = {1, 7, 3, 5, 9, 2};
auto it = is_sorted_until(numbers.begin(), numbers.end());
int position = it - numbers.begin();
cout << "前 " << position << " 个元素保持升序排列。";
// 输出:前 2 个元素保持升序排列(1,7)

亲自试一试

语法

is_sorted_until(iterator start, iterator end);

参数

参数 描述
start 必需。指向数据范围起始位置的迭代器。
end

必需。指向数据范围结束位置的迭代器。

将检测到该位置之前的元素。

技术细节

返回:

指向首个不满足升序条件的元素的迭代器。

若全部有序,则返回 end 迭代器。

说明:

该函数可用于检测部分有序的数据范围,时间复杂度为 O(n)。

如需检查降序排列,可使用:

is_sorted_until(start, end, greater<type>())

相关页面

教程:C++ 数据结构

教程:C++ 迭代器

教程:C++ 算法