map译为映射,可以将任何基本类型(包括STL容器)映射到任何基本类型(包括STL容器)。
需添加
#include <map>
1、定义
map< typename1 , typename2 > mp ; 映射前类型(键key),映射后类型(值value)。
eg. map<char,int> mp :从char型映射到int型。
map会以键从小到大的顺序自动排序,因为其内部是有红黑树实现的,在建立映射的过程中就会自动实现排序。
2、访问
map<chat,int> mp; mp['c'] = 20; mp['c'] = 30; //20被覆盖
1、下标访问
mp[ 'c' ] ; mp中键是唯一的。
2、迭代器访问
map<typename1,typename2>::iterator it; it->first访问键,it->second访问值。
map<char,int> mp; mp['m'] = 20; mp['r'] = 30; mp['a'] = 40; for(map<char,int>::iterator it = mp.begin();it != mp.end();it++){ printf("%c %d",it->first,it->second); }
3、常用函数
find( key ) : 返回键为key的映射的迭代器,若未找到,返回map.end()。
erase() : mp.erase( it ) : 删除迭代器it处的元素;
mp.erase(key) : 删除键为key的元素;
mp.erase( first , last ) : 删除迭代器为 [ first , last ) 内的元素。
size() : 获得map中映射的对数。
clear() : 清空map中所有元素。