📜  C++ STL中的multimap :: cbegin()和multimap :: cend()(1)

📅  最后修改于: 2023-12-03 15:29:50.841000             🧑  作者: Mango

C++ STL中的multimap::cbegin()和multimap::cend()

在 C++ STL 中,multimap 是一种关联容器,其元素都是一对 key-value 值。其中,key 值是可排序的,且可以有多个相同的 key 值。multimap 容器提供了许多用于访问其元素的成员函数,其中包括 cbegin() 和 cend() 函数。

multimap::cbegin() 函数

multimap::cbegin() 函数是 multimap 容器的成员函数,它返回指向 multimap 的第一个元素的常量双向迭代器。这个返回值可以使用解引用运算符(*)来访问元素的 key-value 对。由于这是常量迭代器,所以无法修改容器的元素。

下面是使用 multimap::cbegin() 函数的示例:

#include <iostream>
#include <map>

int main() 
{
    std::multimap<int, std::string> mymap;
    mymap.insert(std::pair<int, std::string>(1, "apple"));
    mymap.insert(std::pair<int, std::string>(2, "banana"));
    mymap.insert(std::pair<int, std::string>(3, "pear"));

    // 使用 cbegin() 函数遍历容器
    std::cout << "The elements in the multimap are:\n";
    for (auto it = mymap.cbegin(); it != mymap.cend(); ++it) {
        std::cout << it->first << " => " << it->second << '\n';
    }

    return 0;
}

输出为:

The elements in the multimap are:
1 => apple
2 => banana
3 => pear

此示例说明了如何使用 multimap::cbegin() 函数和常量迭代器来访问容器中的元素。

multimap::cend() 函数

multimap::cend() 函数是 multimap 容器的成员函数,它返回指向 multimap 的最后一个元素的下一个元素的常量双向迭代器。由于它返回的是最后一个元素的下一个元素的迭代器,因此当使用它来遍历容器时,不会访问任何元素。

下面是使用 multimap::cend() 函数的示例:

#include <iostream>
#include <map>

int main() 
{
    std::multimap<int, std::string> mymap;
    mymap.insert(std::pair<int, std::string>(1, "apple"));
    mymap.insert(std::pair<int, std::string>(2, "banana"));
    mymap.insert(std::pair<int, std::string>(3, "pear"));

    // 使用 cend() 函数遍历容器
    std::cout << "The elements in the multimap are:\n";
    for (auto it = mymap.cbegin(); it != mymap.cend(); ++it) {
        std::cout << it->first << " => " << it->second << '\n';
    }
    std::cout << "The end of the multimap is reached.\n";

    return 0;
}

输出为:

The elements in the multimap are:
1 => apple
2 => banana
3 => pear
The end of the multimap is reached.

此示例说明了如何使用 multimap::cend() 函数和常量迭代器来访问容器中的元素。它们对于了解 multimap 容器的工作原理和遍历其元素非常有用。