std::find ,set.find, multiset.find, map.find和multimap.find算法总结 - Hibernate4 - 博客园
2013-03-28 18:23
393 查看
std::find ,set.find, multiset.find, map.find和multimap.find算法总结 - Hibernate4 - 博客园
工作之后,花些时间对这些常用的东西做一个总结,方便以后翻阅所用。
1.通用std::find 函数
例子1:
3. boost bimap和 boost unordered_map的find方法。
因为此处重点对STL的说明,关于bimap和unordered_map的find方法,请参看本博客下一篇博文。
std::find ,set.find, multiset.find, map.find和multimap.find算法总结
这几天对到底选用哪个容器,用哪种形式的find函数有一些迷惑的地方。工作之后,花些时间对这些常用的东西做一个总结,方便以后翻阅所用。
1.通用std::find 函数
例子1:
// set::find #include <iostream> #include <set> usingnamespacestd; intmain () { set<int> myset; set<int>::iterator it; // set some initial values: for(inti=1; i<=5; i++) myset.insert(i*10); // set: 10 20 30 40 50 it=myset.find(20); myset.erase (it); myset.erase (myset.find(40)); cout << "myset contains:"; for(it=myset.begin(); it!=myset.end(); it++) cout << " " << *it; cout << endl; return0; }
方式一: typedefstd::multimap<int,int> Pairs; multimap<int,int>::iterator iter; Pairs pairs; pairs.insert(make_pair(1, 1)); pairs.insert(make_pair(1,2)); pairs.insert(make_pair(1,3)); pairs.insert(make_pair(2, 4)); pairs.insert(make_pair(2,5)); pairs.insert(make_pair(3,2)); intkey = 1; Pairs::iterator position = pairs.lower_bound(key); while(position != pairs.upper_bound(key)) { cout << position->first << "\t"<< position->second; ++position; } 方式二: typedefstd::multimap<int,int> Pairs; multimap<int,int>::iterator iter; Pairs pairs; pairs.insert(make_pair(1, 1)); pairs.insert(make_pair(1,2)); pairs.insert(make_pair(1,3)); pairs.insert(make_pair(2, 4)); pairs.insert(make_pair(2,5)); pairs.insert(make_pair(3,2)); iter = pairs.find(1); //find返回的是第一个找到的元素的位置 if(iter == pairs.end()) cout << "can not find 2\n"; //注意判断没有找到的办法 elsecout << iter->second << endl; pair<Pairs::iterator, Pairs::iterator> range; //前面说了find只能返回第一个位置 range = pairs.equal_range(1); //要是想得到全部,只能这样啦 for(iter = range.first; iter != range.second; iter++) cout << iter->first << " " << iter->second << endl;
3. boost bimap和 boost unordered_map的find方法。
因为此处重点对STL的说明,关于bimap和unordered_map的find方法,请参看本博客下一篇博文。
相关文章推荐
- std::find ,set.find, multiset.find, map.find和multimap.find算法总结
- std::find ,set.find, multiset.find, map.find和multimap.find算法总结
- std::find ,set.find, multiset.find, map.find和multimap.find算法总结
- STL模板总结归纳(set,multiset和map,multimap)
- STL总结之set/multiset和map/multimap
- map vector list const multimap set multiset总结
- STL有4种联合容器(set,multiset, map, multimap)
- STL概览-关联容器set,multiset,map,multimap(四)
- JAVA中的集合类map、set、list精练总结
- Java中List Set Map 是否有序等总结
- hibernate setResultTransformer(Criteria.ALIAS_TO_ENTITY_MAP)
- stl的set,multiset, map, multimap, deque, list, stack, queue, priority_queue
- (转)std::map的用法总结
- [C++/object c]_[初级]_[std::map容器的使用总结和NSDictionary词典使用总结]
- std::set 使用总结
- 关于std::map中的find和[]的问题
- 【Java基础】 (List、Set、Map、Stack、Queue)总结
- map、set、multimap、multiset(转)
- day3.23总结_Set和Map
- 5 关联式容器-set map multiset multimap