C++ STL中的unordered_multimap cbegin()函数
简介
C++ STL中的unordered_multimap是一种关联性容器,键值和值可以是任意类型。它支持常数时间的平均插入和查找操作,通过hash表实现。unordered_multimap可以存储具有相同关键字的多个值。
unordered_multimap的成员函数cbegin()返回一个指向unordered_multimap中第一个元素的迭代器,它是一个常量类型的迭代器,不允许被修改。
cbegin()函数声明如下:
const_iterator cbegin() const noexcept;
其中,const_iterator是一个常量类型的迭代器。
示例
以下代码展示了unordered_multimap cbegin()函数的使用方法:
#include <iostream>
#include <unordered_map>
#include <string>
int main()
{
std::unordered_multimap<std::string, int> umap = {{"apple", 1}, {"banana", 2}, {"apple", 3}, {"orange", 4}};
std::cout << "Values associated with key 'apple':";
for(auto itr = umap.cbegin(); itr != umap.cend(); ++itr)
{
if(itr->first == "apple")
{
std::cout << " " << itr->second;
}
}
std::cout << "\n";
return 0;
}
输出结果为:
Values associated with key 'apple': 1 3
在上面的代码中,我们声明了一个unordered_multimap umap,其中包含4对键值对,其中”apple”对应有两个值1和3。
我们使用cbegin()函数获取unordered_multimap中第一个元素的迭代器,并遍历整个unordered_multimap,如果当前迭代器所指向的元素的键值为”apple”,则输出它所关联的值。
需要注意的是,由于cbegin()函数返回的是一个常量类型的迭代器,因此我们不能用它来修改unordered_multimap中的元素值。
结论
unordered_multimap cbegin()函数返回const类型的迭代器,用于访问unordered_multimap中的第一个元素。我们可以使用这个函数来遍历并访问unordered_multimap中的键值对。
需要特别注意的是,cbegin()返回的是const_iterator类型,不允许被修改,因此我们不能使用cbegin()返回的迭代器来修改unordered_multimap中的元素。