使用 <map> 库创建关联容器
2007-03-15 21:55:27 来源:WEB开发网核心提示:本文示例源代码或素材下载 摘要:当索引是整型,那么将值与之关联并不难,使用 <map> 库创建关联容器,但如果数据的关联值对是其它数据类型怎么办呢?<map>库具备一个关联容器,使用它可以很方便地关联所有类型的数据对,那就是 C++98 标准库已经具备一个特殊的 tuple 类型&mda
本文示例源代码或素材下载
摘要:当索引是整型,那么将值与之关联并不难,但如果数据的关联值对是其它数据类型怎么办呢?<map>库具备一个关联容器,使用它可以很方便地关联所有类型的数据对。本文将讨论 <map> 库的使用方法和技巧。
关系数据库,科学计算应用以及基于Web的系统常常需要类似 vector 的容器,其索引可以是如何数据类型,不一定是整数。这样的容器叫关联容器,或者 map。例如,目录服务应用可以将私人姓名作为索引来存储,电话号码作为其关联的值:
directory["Harry"]=8225687;// 插入 "Harry" 并与他的电话号码关联
iterator it=directory.find("Harry");// 获取 Harry 的电话号码
其它关联容器的应用还包括将 URLs 映射到 IP 的 DNS 服务器,字典,库存清单,工资表等等。那么如何突破整型索引的局限,实现用其它数据类型作为索引的关联容器呢?答案是:使用 <map> 库创建和处理关联容器。
Pair 和 Map
最近的一篇文章中,我介绍了 tuple 的概念,它是不同类型元素的集合。在这篇文章中,有一个内容没有提到,那就是 C++98 标准库已经具备一个特殊的 tuple 类型——pair。它将键值(也就是第一个元素)与某个值(第二个值)关联。例如:
#include <utility> //definition of pair
#include <string>
pair <string, string> prof_and_course("Jones", "Syntax");
pair <int, string> symbolic_const (0, "false");
标准库还定义了一个辅助函数,方便 pair 类型的创建:
string prof;
string course;
make_pair(prof,course);//returns pair <string,string>
第一步:构造和初始化一个 map 对象
更多精彩
赞助商链接