使用map/multimap之前要加入头文件#include
map和multimap内部的数据结构也是平衡二叉树。map 和 multimap 拥有 set 和 multiset 所有能为和所有操作函数。
map和multimap根据元素的key自动对元素进行排序,要修改元素的key必须先删除拥有该key的元素,然后插入拥有新的key/value的元素。
1.常用函数
注意:所有的搜索函数,参数是key,而不是value。这样你就不能以 find() 搜寻拥有某特定 value 的元素。
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| m.count(key) m.find(key) m.lower_bound(key) m.upper_bound(key) m.equal_range(key)
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
| c.insert(elem) c.insert(pos,elem) c.insert(beg,end) c.erase(elem) c.erase(pos) c.erase(beg,end) typedef std::map<std::string,float> StringFloatMap; StringFloatMap coll; StringFloatMap::iterator pos; for (pos = coll.begin(); pos != coll.end(); ++pos) { if (pos->second == value) { coll. erase (pos); } } typedef std::map<std::string,float> StringFloatMap; StringFloatMap coll; StringFloatMap::iterator pos; for (pos = coll.begin(); pos != coll.end(); ) { if (pos->second == value) { c.erase(pos++); } else { ++pos; } }
|
将value值传入map
1 2 3 4
| coll["otto"] = 7.7; coll.insert(std::make_pair("otto",22.3));
|
引用http://blog.csdn.net/lwbeyond/article/details/7313204#