map解释
map(映射)——经过排序了的二元组的集合,map中的每个元素都是由两个值组成,其中的key(键值,一个map中的键值必须是唯一的)是在排序或搜索时使用,它的值可以在容器中重新获取;而另一个值是该元素关联的数值。比如,除了可以ar[43] ="overripe"这样找到一个数据,map还可以通过ar["banana"] ="overripe"这样的方法找到一个数据。如果你想获得其中的元素信息,通过输入元素的全名就可以轻松实现。
map 一对一的映射的结合,key不能重复。
map的使用
//代码可直接运行,运行环境 系统:centos 6.5 //此段代码演示了几种不同方法的插入元素,遍历元素,查找,删除元素 #include<iostream> #include<map> #include<string>
using namespace std; int main() { map<int ,int> mymap; //此map的key和value 都是int 型的 map<int ,int>::iterator it; //定义一个迭代子 it = mymap.begin(); //用数组的方式插入数据 for(int i= 0;i<10;i++) { mymap[i]= (i+3);
}
for(it = mymap.begin();it !=mymap.end();it++) //遍历所有元素 { cout<<it->first<<" "<<it->second<<endl; } cout<<endl<<endl; //用insert 的方式插入数据 for(int j=10;j<20;j++) { mymap.insert(pair<int,int>(j,j+10)); } for(it= mymap.begin();it != mymap.end();) { cout<<it->first<<" "<<it->second<<endl; //遍历所有元素 ++it; } cout<<endl<<endl; //insert的另外一中方式插入元素 for(int k =20; k<30 ;k++) { mymap.insert(map<int,int>::value_type(k,k+100));
} for(it = mymap.begin();it!=mymap.end();) { cout<<it->first<<" "<<it->second<<endl;//遍历所有元素 ++it; } cout<<"this size of map"<<mymap.size()<<endl; for(int index =0;index<mymap.size();index++) { cout<<mymap[index]<<" "; //遍历所有元素 } cout<<endl; cout<<mymap[0]<<endl; cout<<mymap[27]<<endl; //随机读取 //find it = mymap.find(27);
if(it != mymap.end()) { cout<<"find,this value"<<endl; //delete mymap.erase(it);
} for(int index =0;index<mymap.size();index++) { cout<<mymap[index]<<" "; } cout<<endl; //clear mymap.clear(); cout<<"the size of mymap"<<mymap.size()<<endl; } |