WEB开发网
开发学院软件开发VC 使用 <map> 库创建关联容器 阅读

使用 <map> 库创建关联容器

 2007-03-15 21:55:27 来源:WEB开发网   
核心提示: 假设你正在开发一个地址簿程序,地址簿包含姓名和 e-mail 地址,使用 <map> 库创建关联容器(2),类模板 map 在 <map> 中定义i,它是一个使用类型对的关联容器,假设你正在经营一家旅行社,每一个代理做一单业务都可以获得奖金,第一个元素是索引,第二个

假设你正在开发一个地址簿程序,地址簿包含姓名和 e-mail 地址。类模板 map 在 <map> 中定义i,它是一个使用类型对的关联容器,第一个元素是索引,第二个元素是关联的值。使用方法如下:

#include <map>
map <string, string> addresses;

为了添加元素,使用下标算符:

addresses["Paul W."]="paul@mail.com";

这里,串“Paul W.”是索引或键值,“paul@mail.com”是其关联的值。如果该 map 已经包含了此键值,那么当前所关联的值不会改变: 

addresses["Paul W."]=
"newaddr@com.net"; // 不起作用

第二步:搜索

在不插入元素的情况下,如果你想检查某个元素是否存在,可以使用 find()成员函数。find()有两个重载的版本:

iterator find(const key_type& k);
const_iterator find(const key_type& k) const;

通常,用 typedef 可以使代码更可读一些:

typedef map <string, string>::const_iterator CIT;
CIT cit=addresses.find("Paul W.");
if (cit==addresses.end())
  cout << "sorry, no such key" << endl;
else
  cout << cit->first << ''  '' << cit->second << endl;

表达式中 cit->first 和 cit->second 分别返回键值及其关联的值。

第三步:元素遍历

现在让我们看一个更现实的情况。假设你正在经营一家旅行社,每一个代理做一单业务都可以获得奖金。这些代理的信息存储在某个文件中,其格式如下:

Tags:使用 lt map

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接