C++ 算法 is_sorted()

2024年8月30日 | 阅读4分钟

C++ 算法 is_sorted() 函数如果范围 [first, last) 中的元素按升序排列,则返回 true。

第一个版本使用运算符 < 比较元素,第二个版本使用 comp 比较元素。

语法

参数

first:指向要检查的范围中第一个元素的前向迭代器。

last:指向要检查的范围中最后一个元素之后的随机访问迭代器。

comp:一个用户定义的二元谓词函数,接受两个参数,如果这两个参数有序则返回 true,否则返回 false。它遵循严格弱序来对元素进行排序。

返回值

如果范围 [first, last) 按升序排列,则返回 true,否则返回 false。

复杂度

复杂性与 first 和 last 之间的距离呈线性关系:比较元素对直到找到不匹配项。

数据竞争

访问范围 [first, last) 中的对象。

异常

如果元素比较或迭代器操作抛出异常,此函数将抛出异常。

注意:无效参数会导致未定义行为。

示例 1

让我们看一个简单示例来演示 is_sorted() 的用法。

输出

before sorting: is sorted? false
after sorting : is sorted? True

示例 2

让我们看另一个简单示例

输出

a: 2 3 5 4 1
a: 2 3 5 1 4
a: 2 3 4 5 1
a: 2 3 4 1 5
a: 2 3 1 5 4
a: 2 3 1 4 5
a: 2 1 5 4 3
a: 2 1 5 3 4
a: 2 1 4 5 3
a: 2 1 4 3 5
a: 2 1 3 5 4
a: 2 1 3 4 5
a: 1 5 4 3 2
a: 1 5 4 2 3
a: 1 5 3 4 2
a: 1 5 3 2 4
a: 1 5 2 4 3
a: 1 5 2 3 4
a: 1 4 5 3 2
a: 1 4 5 2 3
a: 1 4 3 5 2
a: 1 4 3 2 5
a: 1 4 2 5 3
a: 1 4 2 3 5
a: 1 3 5 4 2
a: 1 3 5 2 4
a: 1 3 4 5 2
a: 1 3 4 2 5
a: 1 3 2 5 4
a: 1 3 2 4 5
a: 1 2 5 4 3
a: 1 2 5 3 4
a: 1 2 4 5 3
a: 1 2 4 3 5
a: 1 2 3 5 4
a: 1 2 3 4 5
the range is sorted!

上面的示例显示了排序序列,并打印元素直到它被排序。

示例 3

让我们看另一个简单示例来检查元素是否已排序。

输出

3 1 4 1 5 : is_sorted: false
1 1 3 4 5 : is_sorted: true

示例 4

让我们看另一个简单示例

输出

Vector elements are not sorted in ascending order.
Vector elements are sorted in ascending order.

下一主题C++ 算法