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++ 算法