📅  最后修改于: 2023-12-03 15:29:50.841000             🧑  作者: Mango
在 C++ STL 中,multimap 是一种关联容器,其元素都是一对 key-value 值。其中,key 值是可排序的,且可以有多个相同的 key 值。multimap 容器提供了许多用于访问其元素的成员函数,其中包括 cbegin() 和 cend() 函数。
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 容器的成员函数,它返回指向 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 容器的工作原理和遍历其元素非常有用。