STL 中map 容器的基本用法
2014-03-19 09:19
645 查看
0. 创建
1. 构造函数
2. map 定义的类型
举例:
3. 添加元素
(a) 下标访问, 下标访问不存在的元素将导致在map容器中添加一个新元素。
(b) insert 函数的使用
4. 访问数据
第一种访问方式:
第二种访问方式:
5.删除数据
6.遍历数据
map<Key_Type key , Value_Type value, less<Key_Type> > map1; //定义了一个键索引为Key_Type类型,关联值索引为 Value_Type类型的关联容器。less<Key_Type>的作用是使得关联容器按照key 升序存储。 map<Key_Type key , Value_Type value, greater<Key_Type> > map2; // 与map1相同,但是是按照key降序存储。
1. 构造函数
map<k, v>m // 创建名为m 的map对象,键和值的类型分别为k和v map<k, v>m( m2 ) // 创建m2的副本, m与m2必须有相同的键类型和值类型 map<k,v>m(b, e) //创建map类型的对象m, 存储迭代器b和e 标记范围内所有元素的副本
2. map 定义的类型
map<k, v> :: key_type // 在map 容器中, 做索引的键的类型 map<k, v> :: mapped_type // 在map容器中,键所关联的值的类型 map<k, v>:: value_type // 一个pair类型, 它的first元素具有const map<k,v>:: key_type 类型, 而second 元素则为map<k, v>::mapped_type。
举例:
map<int, vector<int> >m; map<int, vector<int> >:: key_type 相当于 int map<int, vector<int> >:: mapped_type 相当于 vector<int> map<int, vector<int> >:: value_type 相当于 pair<int, vector<int> >
3. 添加元素
(a) 下标访问, 下标访问不存在的元素将导致在map容器中添加一个新元素。
map<string, int> word_count; // empty map word_count["Anna"] = 1;
(b) insert 函数的使用
typedef map<string, int>:: value_type ValueType; word_count.insert( ValueType("Anna", 1) );
4. 访问数据
m.count(k) // 返回m中k 出现的次数 m.find(k) // 如果容器中存在按k索引的元素, 则返回指向该元素的迭代器。 如果不存在, 则返回超出末端迭代器 m.end()。
map <string, int> word_count; int occurs = word_count["foobar"];
第一种访问方式:
int occurs = 0; if(word_count.count( "foobar") ) occurs = word_count["foobar"];
第二种访问方式:
int occurs = 0; mat<string, int> :: iterator it = word_count.find("foobar"); if(it != word_count.end() ) occurs = it->second;
5.删除数据
m.erase( k ) // 删除m 中键为k 的元素。 返回值为size_type, 表示删除元素的个数。 m.erase(p) // 删除迭代器p 所指向的元素,p必须指向m中确实存在的元素,而且不等于m.end() m.erase(b, e) // 删除迭代器b,e范围内的元素
6.遍历数据
for(map<string, int>::const_iterator it = word_count.begin(); it< word_count.end(); it++) { cout<<it->first<<" occurs "; cout<<it->second<< "times"<<endl; }
相关文章推荐
- c++ stl中map容器的基本用法
- MFC中STL容器中Vector,List,Map基本用法汇总
- STL的基本使用之关联容器:map和multiMap的基本使用
- 105_容器_Map和HashMap的基本用法_HashMap和HashTable的区别
- 【STL】map和set的基本用法
- stl容器set,map,vector之erase用法与返回值详细解析
- [STL] map,multimap,unordered_map基本用法
- C++ STL基本容器的使用(vector、list、deque、map、stack、queue)
- 几种STL容器的基本用法[资料]
- C++中STL容器的分类和基本功能(二):集合(set) 映射(map)
- 在STL中基本容器有: string、vector、list、deque、set、map
- STL容器-map用法总结
- STL容器用法速查表:list,vector,stack,queue,deque,priority_queue,set,map
- 容器第五课,Map和HashMap的基本用法,hashMap和HashTable的区别
- STL容器(C11)--unordered_map用法
- Map容器的用法(STL)
- STL基本用法【vector】【map】【string】【set】
- c++map容器的基本用法
- c++ stl容器vector删除(erase),遍历等基本用法介绍及头文件
- An Example about the use of map Container in C++ STL / c++ map容器的用法