map用法

orz hhw posted @ 2015年5月31日 19:11 in 算法学习 with tags map 算法学习 模板 STL , 671 阅读
 
map构造函数:
   map<int/char/string(原变量),int/char/string(现变量)>mapint/char/string;
map添加数据:
   map<int,string>mp;
   1.mp.insert(pair<int,string>(233,"orzmxh"));
   2.mp.insert(map<int,string>::value_type(521,"orzhzh"));
   3.mp[666]="orzhhw";
   mp->first第一项 mp->second第二项
map函数:
   mp.begin()         返回首元素的迭代器指针
   mp.end()          返回尾元素的迭代器指针
   mp.size()             目前元素个数
   mp.bool()        判断容器是否空,若返回true,表明容器已空
   mp.find(key)       返回键值等于key的迭代器指针
   mp.count(key)      返回键值等于key的元素的个数
   mp.lower_bound(key) 返回键值大于等于key的迭代器指针
   mp.upper_bound(key) 返回键值大于key的迭代器指针
   mp.erase(key)      删除迭代指针key处元素
   mp.erase(l,r)      删除[l,r)之间元素
   mp.swap(mp2)       交换mp和mp2映射元素
   mp.clear()         删除所有元素
#include<map>  
#include<cstdio>
using namespace std;
map<char,int> mp1,mp2;
map<char,int>::iterator it;
int main(){
    mp1['a']=1;mp1['b']=2;  
    mp1['c']=3;mp1['d']=4;
    mp2.insert(pair<char,int>('e',10));
    mp2.insert(pair<char,int>('f',40));
    mp2.insert(map<char,int>::value_type('g',60));
    mp2.insert(map<char,int>::value_type('h',80));
	mp1.swap(mp2);
	it=mp2.find('b');
	printf("%d\n",it->second);//2
	mp2.erase(mp2.find('b'),mp2.find('d'));//<a,1> <d,4>
	printf("%d\n",mp2.size());//2
	printf("%d\n",mp1.count('g'));//1
	for(it=mp1.begin();it!=mp1.end();it++)//<e,10><f,40>
	printf("%c %d\n",it->first,it->second);//<g,60><h,80>
}