在C++的STL中使用multimap::cbegin()和multimap::cend()
C++的STL中,multimap是一个关联容器,可以存储键值对,支持快速查找和插入操作,且可以存储多个相同的键值。在本文中,我们将介绍multimap中的cbegin()和cend()方法的用法。
multimap::cbegin()方法
multimap::cbegin()方法返回指向multimap容器中第一个元素的const_iterator类型迭代器。该迭代器不能用于修改元素值,只能用于读取元素值,因为const_iterator指向的元素是const类型的。
下面是一个示例代码,它展示了如何使用multimap::cbegin()方法来读取multimap中的元素值:
#include <iostream>
#include <map>
int main() {
std::multimap<int, std::string> mymap = {
{1, "apple"},
{2, "banana"},
{3, "orange"},
{3, "grape"},
{4, "watermelon"}
};
//输出multimap中的所有键值对
auto it = mymap.cbegin();
while (it != mymap.cend()) {
std::cout << it->first << " " << it->second << std::endl;
++it;
}
return 0;
}
在上面的示例代码中,我们首先定义了一个multimap对象,并在其中插入了几个键值对。然后,我们使用multimap::cbegin()方法获取该multimap对象的const_iterator迭代器,并通过迭代器遍历输出了所有键值对。
multimap::cend()方法
multimap::cend()方法返回指向multimap容器中超出范围的const_iterator类型迭代器。该迭代器不能用于修改元素值,只能用于读取元素值,因为const_iterator指向的元素是const类型的。
下面是一个示例代码,它展示了如何使用multimap::cend()方法来遍历multimap中的所有元素值:
#include <iostream>
#include <map>
int main() {
std::multimap<int, std::string> mymap = {
{1, "apple"},
{2, "banana"},
{3, "orange"},
{3, "grape"},
{4, "watermelon"}
};
//输出multimap中的所有键值对
for (auto it = mymap.cbegin(); it != mymap.cend(); ++it) {
std::cout << it->first << " " << it->second << std::endl;
}
return 0;
}
在上面的示例代码中,我们同样定义了一个multimap对象,并在其中插入了几个键值对。然后,我们使用multimap::cend()方法获取该multimap对象的const_iterator迭代器,并通过for循环遍历输出了所有键值对。
结论
multimap::cbegin()和multimap::cend()方法是读取multimap容器中元素值的常用方法,它们都返回const_iterator类型的迭代器,能够保证元素值的不可修改性。因此,在使用multimap容器时,我们应该熟练掌握这两种方法的用法,以便更加高效地读取multimap容器中的元素值。