C++ multimap rend() 函数

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

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

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

语法

参数

返回值

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

复杂度

常量。

迭代器有效性

无变化。

数据竞争

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

异常安全

此函数从不抛出异常。

示例 1

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

输出

c = 100
b = 400
b = 200
a = 100

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

由于 multimap 以键的排序顺序存储元素,因此对 multimap 进行迭代将按上述顺序(即键的排序顺序)进行。

示例 2

让我们看一个使用 while 循环逆序迭代 multimap 的简单示例

输出

ddd :: 11
ccc  :: 13
aaa :: 12
aaa :: 10

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

由于 multimap 以键的排序顺序存储元素,因此对 multimap 进行迭代将按上述顺序(即键的排序顺序)进行。

示例 3

让我们看一个简单的例子

输出

The last element of the reversed multimap m1 is 1.
The multimap is: 1 2 3 .
The reversed multimap is: 3 2 1 .
After the erasure, the last element in the reversed multimap is 2.

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

示例 4

让我们看一个简单的例子来排序并计算最高工资

输出

Salary | ID
______________________
4500   |  30
3500   |  50
3500   |  20
3000   |  40
1000   |  10
Highest salary: 4500 
ID is: 30

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

下一个主题C++ Multimap