现在的位置: 首页 > 综合 > 正文

C++关联容器之map

2012年10月11日 ⁄ 综合 ⁄ 共 1318字 ⁄ 字号 评论关闭

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中,并返回一个引用,它能够用来将一个值与这个键相关联。

抱歉!评论已关闭.