C++ multimap::rbegin() 函数



C++ 的 std::multimap::rbegin() 函数用于返回一个指向最后一个元素的反向迭代器,从而可以从最后一个元素反向遍历到第一个元素。此函数对于需要反向访问元素的操作非常有用。反向迭代器可以递增以向后移动容器。此函数的时间复杂度为常数,即 O(1)。

语法

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

reverse_iterator rbegin() nothrow;
const_reverse_iterator rbegin() const nothrow;

参数

它不接受任何参数。

返回值

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

示例

让我们来看下面的例子,我们将演示 rbegin() 函数的使用。

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

输出

以上代码的输出如下:

2: Vanakam

示例

考虑以下示例,我们将使用反向迭代器搜索和打印特定值。

#include <iostream>
#include <map>
int main()
{
    std::multimap<int, std::string> a;
    a.insert({1, "AB"});
    a.insert({2, "BC"});
    auto x = a.rbegin();
    while (x != a.rend()) {
        if (x->second == "AB") {
            std::cout << "Founded Key Value Is : " << x->first << " " << x->second << std::endl;
            break;
        }
        ++x;
    }
    return 0;
}

输出

以上代码的输出如下:

Founded Key Value Is : 1 AB

示例

在下面的示例中,我们将使用反向迭代器计算 multimap 中的元素个数。

#include <iostream>
#include <map>
int main()
{
    std::multimap<int, std::string> a;
    a.insert({1, "TP"});
    a.insert({2, "Tutorix"});
    a.insert({3, "Tutorialspoint"});
    int count = 0;
    for (auto x = a.rbegin(); x != a.rend(); ++x) {
        count++;
    }
    std::cout << "Total Elements: " << count << std::endl;
    return 0;
}

输出

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

Total Elements: 3
multimap.htm
广告