一、前言
multimap容器和map容器基本类似,在这里只说明map容器没有的内容,或者与map容器的区别。
和 map 容器的区别在于:multimap 容器中可以同时存储多(≥2)个键相同的键值对。
二、方法
和 map 容器相比,multimap 未提供 at() 成员方法,也没有重载 [] 运算符。因此这里说一下multimap容器获取值的方法。
1、获取值
1)方法1
std::multimap<int, string> multimap{ {1,"lin"},{1,"wen"},{1, "kai"},{2,"li"},{2,"wu"},{3,"huang"} };
int nCount = multimap.count(1);
std::cout << "nCount: " << nCount << std::endl;
std::multimap<int, string>::iterator mtmapIter = multimap.begin();
for (int i = 0; i < nCount; i++)
{
std::cout << mtmapIter->first << " " << mtmapIter->second << std::endl;
++mtmapIter;
}
2)方法2
std::multimap<int, string> multimap{ {1,"lin"},{1,"wen"},{1, "kai"},{2,"li"},{2,"wu"},{3,"huang"} };
int nCount = multimap.count(1);
std::cout << "nCount: " << nCount << std::endl;
std::multimap<int, string>::iterator mtmapBeginIter = multimap.lower_bound(1);
for (; mtmapBeginIter != multimap.upper_bound(1); mtmapBeginIter++)
{
std::cout << mtmapBeginIter->first << " " << mtmapBeginIter->second << std::endl;
}
3)方法3
std::multimap<int, string> multimap{ {1,"lin"},{1,"wen"},{1, "kai"},{2,"li"},{2,"wu"},{3,"huang"} };
int nCount = multimap.count(1);
std::cout << "nCount: " << nCount << std::endl;
pair<std::multimap<int, string>::iterator, std::multimap<int, string>::iterator> iter = multimap.equal_range(1);
for (; iter.first != iter.second; iter.first++)
{
std::cout << iter.first->first << " " << iter.first->second << std::endl;
}
结果如下:
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。