C++ set rend()

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

C++ set rend() 函数用于返回指向 set 结尾(不是最后一个元素,而是最后一个元素之后的位置)的反向迭代器。这类似于非反向容器的第一个元素之前的元素。

注意:- 这是一个占位符。此位置不存在任何元素,尝试访问将导致未定义行为。

语法

参数

返回值

它返回一个反向迭代器,指向反向容器中最后一个元素之后的位置。

复杂度

常量。

迭代器有效性

无变化。

数据竞争

容器被访问。无论是 const 版本还是非 const 版本都不会修改容器。

并发访问 set 的元素是安全的。

异常安全

此函数从不抛出异常。

示例 1

让我们看一个rend()函数的简单示例

输出

Elements are : 50 40 30 20 10

在上面的示例中,rend()函数用于返回一个反向迭代器,指向反向容器中最后一个元素之后的位置。

因为 set 以键的排序顺序存储元素,所以遍历 set 将得到上述顺序,即键的排序顺序。

示例 2

让我们看一个使用 while 循环以反向顺序遍历 set 的简单示例

输出

ddd
ccc
bbb
aaa

在上面的例子中,我们使用 while 循环以反向顺序遍历 set。

因为 set 以键的排序顺序存储元素,所以遍历 set 将得到上述顺序,即键的排序顺序。

示例 3

让我们看一个简单的例子

输出

The last element in the reversed set is 10.
The set is: 10 20 30 .
The reversed set is: 30 20 10 .
After erase, the last element in the reversed set is 20.

在上面的例子中,set 的元素以反向顺序返回。

示例 4

让我们看一个简单的例子来排序和计算最高分数

输出

Salary
______________________
5000
4500
3000
2500
1000

Highest salary: 5000

在上面的例子中,实现了 set emp,其中 ID 作为值存储,薪水作为键。这使我们能够利用 set 中的自动排序功能,并让我们能够识别薪水最高的元素的 ID。


下一个主题Set crbegin() 函数