C++多重集rend()

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

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

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

语法

参数

返回值

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

复杂度

常量。

迭代器有效性

无变化。

数据竞争

容器被访问。常量和非常量版本都不会修改容器。

同时访问 multiset 容器的元素是安全的。

异常安全

此函数从不抛出异常。

示例 1

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

输出

Elements are : 40 30 20 20 10

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

因为多重集按键的排序顺序存储元素,所以遍历多重集将导致以上顺序,即键的排序顺序。

示例 2

让我们看一个使用 while 循环以反向顺序迭代 multiset 的简单示例

输出

ddd
ccc
ccc
bbb
aaa

在上面的示例中,我们使用while循环以反向顺序遍历多重集。因为多重集按键的排序顺序存储元素,所以遍历多重集将导致以上顺序,即键的排序顺序。

示例 3

让我们看一个简单的例子

输出

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

在上面的示例中,多重集的元素以反向顺序返回。

示例 4

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

输出

Salary
______________________
5000
4500
4500
3000
2500
1000

Highest salary: 5000

在上面的示例中,实现了一个多重集emp,其中薪水作为值存储。这使我们能够利用多重集的自动排序功能,并识别最高薪水。

下一个主题C++ multiset