1 / 11
文档名称:

STL中map用法详解.pdf

格式:pdf   页数:11
下载后只包含 1 个 PDF 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

STL中map用法详解.pdf

上传人:翩仙妙玉 2012/9/16 文件大小:0 KB

下载得到文件列表

STL中map用法详解.pdf

文档介绍

文档介绍:踏雪无痕
STL中map用法详解
分类: 技术摘录 2012-04-26 11:26 131人阅读评论(0) 收藏举报
Map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个
可能称为该关键字的值)的数据处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时候,在编程上
提供快速通道。这里说下map内部数据的组织,map内部自建一颗红黑树(一种非严格意义上的平衡二叉树),这颗树
具有对数据自动排序的功能,所以在map内部所有的数据都是有序的,后边我们会见识到有序的好处。
下面举例说明什么是一对一的数据映射。比如一个班级中,每个学生的学号跟他的姓名就存在着一一映射的关系,
这个模型用map可能轻易描述,很明显学号用int描述,姓名用字符串描述(本篇文章中不用char *来描述字符串,而
是采用STL中string来描述),下面给出map描述代码:
Map<int, string> mapStudent;
1.       map的构造函数
map共提供了6个构造函数,这块涉及到内存分配器这些东西,略过不表,在下面我们将接触到一些map的构造方法,
这里要说下的就是,我们通常用如下方法构造一个map:
Map<int, string> mapStudent;
2.       数据的插入
在构造map容器后,我们就可以往里面插入数据了。这里讲三种插入数据的方法:
第一种:用insert函数插入pair数据,下面举例说明(以下代码虽然是随手写的,下编译通过,
大家可以运行下看什么效果,在VC下请加入这条语句,屏蔽4786警告  #pragma warning (disable:4786) )
#include <map>
#include <string>
#include <iostream>
Using namespace std;
Int main()
{
       Map<int, string> mapStudent;
       (pair<int, string>(1, “student_one”));
       (pair<int, string>(2, “student_two”));
       (pair<int, string>(3, “student_three”));
       map<int, string>::iterator  iter;
       for(iter = (); iter != (); iter++)
{
       Cout<<iter->first<<”   ”<<iter->second<<end;
}
}
第二种:用insert函数插入value_type数据,下面举例说明
#include <map>
#include <string>
#include <iostream>
1
Using namespace std;
Int main()
{
       Map<int, string> mapStudent;
       (map<int, string>::value_type (1, “student_one”));
       (map<int, string>::value_type (2, “student_two”));
       (map<int, string>::value_type (3, “student_three”));
       map<int, string>::iterator  iter;
       for(iter = (); iter != (); iter++)
{
       Cout<<iter->first<<”   ”<<iter->second<<end;
}
}
第三种:用数组方式插入数据,下面举例说明
#include <map>
#include <string>
#include <iostream>
Using namespace std;
Int main()
{
       M