map关联容器执行唯一的键与关联值的快速保存和提取。map中不允许重复的键,每个值都只能与一个键关联。这通常称为一对一映射。例如,一家采用唯一员工编号的公司,肯能使用一个map,将员工编号和电话分机号码分别关联。利用map,能够用键快速获取相关联的数据。map也被成为关联数组(associative arry)。在map的下标运算符[]中提供键,能够在map中搜索出与这个键想关联的值。map中任何位置都可以执行插入和删除操作。
#include <iostream>
#include <map>
using namespace std;
typedef map<int,double,less<int> > Mid;//define shaort name for map type used in this program
int main()
{
Mid pairs;//declare the multimap pairs
//insert eight value_type object in pairs
pairs.insert(Mid::value_type(15,2.7));
pairs.insert(Mid::value_type(30,111.11));
pairs.insert(Mid::value_type(5,1010.1));
pairs.insert(Mid::value_type(10,22.22));
pairs.insert(Mid::value_type(25,33.333));
pairs.insert(Mid::value_type(5,77.54));
pairs.insert(Mid::value_type(20,9.345));
pairs.insert(Mid::value_type(15,99.3));
cout<<"paris contains:\nKey\tValue\n";
for (Mid::const_iterator iter=pairs.begin();iter!=pairs.end();++iter)
{
cout<<iter->first<<'\t'<<iter->second<<'\n';
}
pairs[25]=9999.99;//use subscripting to change value for key 25
pairs[40]=8765.43;//use subscripting to insert value for key 40
cout<<"\nAfter subscripting operations, pairs contains:\nkey\tvalue\n";
for (Mid::const_iterator iter1=pairs.begin();iter1!=pairs.end();++iter1)
{
cout<<iter1->first<<'\t'<<iter1->second<<'\n';
}
cout<<endl;
return 0;
}
//这个程序演示了map关联容器。当map对象使用下标运算的时候,如果访问的键值已经存在时,就返回相关联的值的引用;如果
//下标值不存在时,这个运算符将插入到map中,并返回一个引用,它能够用来将一个值与这个键相关联。