C++ multimap::crend() 函式



C++ 的 std::multimap::crend() 函式用於返回一個指向 multimap 中第一個元素之前元素的常量反向迭代器,標誌著它反向順序的結尾。此迭代器不能用於修改它指向的元素。它用於反向迭代 multimap 而無需更改元素,從而確保只讀訪問。此函式的時間複雜度是常數,即 O(1)。

語法

以下是 std::multimap::crend() 函式的語法。

const_reverse_iterator crend() const noexcept;

引數

它不接受任何引數。

返回值

此函式返回一個常量反向迭代器。

示例

在下面的示例中,我們將演示 crend() 函式的用法。

#include <iostream>
#include <map>
int main()
{
    std::multimap<int, std::string> a = {{2, "B"}, {1, "C"}, {3, "A"}};
    for (auto x = a.crbegin(); x != a.crend(); ++x) {
        std::cout << x->first << ": " << x->second << std::endl;
    }
    return 0;
}

輸出

以下是上述程式碼的輸出:

3: A
2: B
1: C

示例

考慮以下示例,我們將檢查 multimap 是否為空。

#include <iostream>
#include <map>
int main()
{
    std::multimap<int, std::string> a;
    if (a.crbegin() == a.crend()) {
        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 = {{4, "A"}, {3, "B"}, {1, "C"}};
    auto x = a.crbegin();
    if (x != a.crend()) {
        std::cout << "" << x->first << std::endl;
    }
    return 0;
}

輸出

如果我們執行上述程式碼,它將生成以下輸出:

4

示例

以下示例將計算 multimap 中值為“B”的元素個數。

#include <iostream>
#include <map>
int main()
{
    std::multimap<int, std::string> a = {{3, "A"}, {1, "B"}, {1, "B"}, {1, "B"}};
    int x = 0;
    for (auto y = a.crbegin(); y != a.crend(); ++y) {
        if (y->second == "B") {
            ++x;
        }
    }
    std::cout << " " << x << std::endl;
    return 0;
}

輸出

讓我們編譯並執行上述程式,這將產生以下結果:

3
multimap.htm
廣告