使用 <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 分别返回键值及其关联的值。
第三步:元素遍历
现在让我们看一个更现实的情况。假设你正在经营一家旅行社,每一个代理做一单业务都可以获得奖金。这些代理的信息存储在某个文件中,其格式如下:
更多精彩
赞助商链接