C++ multimap::rend() 函数



C++ 的std::multimap::rend()函数用于返回一个反向迭代器,该迭代器指向multimap的第一个元素之前的元素。它用于multimap的反向遍历,从最后一个元素到第一个元素。rend()迭代器是起始位置之前的某个位置,可以安全地进行反向迭代。此函数不修改multimap,它只提供了一种以反向顺序遍历它的方法。此函数的时间复杂度是常数,即O(1)。

语法

以下是std::multimap::rend()函数的语法。

reverse_iterator rend() nothrow;
const_reverse_iterator rend() const nothrow;

参数

它不接受任何参数。

返回值

此函数返回一个指向容器反向末端的反向迭代器。

示例

让我们看下面的例子,我们将演示rend()函数的基本用法。

#include <iostream>
#include <map>
int main()
{
    std::multimap<int, std::string> a = {{1, "Vanakam"}, {3, "Hi"}, {2, "Hello"}};
    for (auto x = a.rbegin(); x != a.rend(); ++x) {
        std::cout << x->first << ": " << x->second << std::endl;
    }
    return 0;
}

输出

以下是上述代码的输出:

3: Hi
2: Hello
1: Vanakam

示例

考虑以下示例,我们将通过比较rend()与rbegin()来检查multimap是否为空。

#include <iostream>
#include <map>
int main()
{
    std::multimap<int, std::string> a;
    if (a.rend() == a.rbegin()) {
        std::cout << "Multimap Is Empty." << std::endl;
    } else {
        std::cout << "Multimap Is Not Empty." << std::endl;
    }
    return 0;
}

输出

上述代码的输出如下:

Multimap Is Empty.

示例

在下面的示例中,我们将查找具有键的元素并以反向顺序遍历multimap,从找到的范围的末尾开始。

#include <iostream>
#include <map>
int main()
{
    std::multimap<int, std::string> a = {{3, "BMW"}, {1, "Cruze"}, {2, "City"}, {1, "Sail"}};
    auto b = a.equal_range(2);
    for (auto x = std::make_reverse_iterator(b.second); x != a.rend(); ++x) {
        std::cout << x->first << " --> " << x->second << std::endl;
    }
    return 0;
}

输出

如果我们运行上述代码,它将生成以下输出:

2 --> City
1 --> Sail
1 --> Cruze
multimap.htm
广告