C++ multimap crend() 函数

30 Aug 2024 | 3 分钟阅读

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

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

常量迭代器是指向常量内容的迭代器。

语法

参数

返回值

它返回一个 const_reverse_iterator,指向逆序容器中最后一个元素之后的位置。

复杂度

常量。

迭代器有效性

无变化。

数据竞争

容器被访问。

异常安全

此函数从不抛出异常。

示例 1

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

输出

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

在上面的示例中,crend() 函数用于返回一个常量逆向迭代器,指向逆序容器中最后一个元素之后的元素。

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

示例 2

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

输出

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

在上面的示例中,我们使用 while 循环以逆序常量迭代 multimap。

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

示例 3

让我们看一个简单的例子

输出

Multimap contains following elements in reverse order:
d = 5
d = 4
b = 2
a = 3
a = 1

在上面的示例中,multimap 的元素以逆序返回。

示例 4

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

输出

Salary | ID
______________________
5500   |  50
3000   |  40
3000   |  30
2500   |  20
1000   |  10
Highest salary: 5500 
ID is: 50

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

下一个主题C++ Multimap