#include <iostream>
#include <map>
using namespace std;
//1.mulitmap和map的区别就是,multimap的key可以重复,而map不可以
//2.在查找时,find函数查找的是第一个key值相等的迭代器,不影响map,但是multi怎么查找所有的key值一样的元素的迭代器呢?
// (1)使用count(k)函数(求出键k出现次数)和find(k)函数(返回第一个拥有键k的迭代器)
// (2)使用lower_bound(k)函数和upper_bound(k),找到k的上下界(因为multimap中的key是有序的)--左闭右开
// (3)使用equal_range(k)函数,返回具有相同键值k的迭代器区间pair:[it1,it2),相当于一个上下界
int main(int argc, char** argv)
{
multimap<int, int> testMap;
testMap.insert(make_pair(1, 2));
testMap.insert(make_pair(1, 3));
testMap.insert(make_pair(1, 4));
testMap.insert(make_pair(2, 5));
testMap.insert(make_pair(3, 6));
//(1)使用第一种方法查找所以key为1的元素
int count = testMap.count(1);
auto it = testMap.find(1);
for (int i = 0; i < count; i++, it++)
{
cout << it->second << " ";
}
cout << endl;
//(2)使用第二种方法查找
auto it1 = testMap.lower_bound(1);
auto it2 = testMap.upper_bound(1);
for (; it1 != it2; it1++)
{
cout << it1->second << " ";
}
cout << endl;
//(3)使用第三种方法查找
auto it3 = testMap.equal_range(1);
for (auto it4 = it3.first; it4 != it3.second; it4++)
{
cout << it4->second << " ";
}
cout << endl;
return 0;
}
mulitimap查找(同样适用于multiset)
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- Day7:良好的学习方式不仅适用于学生,同样适用于成人。(第一章) 1..究竟哪种教学方法最好? 围绕教学的方法有...
- 应产品要求,让写个 es 的自动重启的脚本,如果 es 挂了,要在分分钟之内重启,当时我的内心是崩溃的,像我这种 ...
- [太阳]关系就是一切,一切都是为了关系。特别是亲密关系。 莎兰汉考克老师曾说:很多看似属于伴侣之间的问题,其根源都...