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
廣告