其实我学map有半年了,用的也不少,也会在文章中提提,但总没有系统整理过,也没看过系统的文章。那今天就写写,顺便一提,我实在没法找到日更话题了。
一、简介
map是STL的一个关联容器。
第一个可以称为关键字(key),每个关键字只能在map中出现一次;
第二个称为该关键字的值(value)。
Map主要用于资料一对一映射(one-to-one)的情況。
二、定义
map有他单独的头文件——#include<map>
再声明一下:一般用 map<类型,类型> m;
第一个类型,是称为关键字类型,而第二个是值得类型。知道关键字,就可以求出它对应的值,就像知道学号可以查找出名字一样。
比如说:
map<string,int> msi;//可以把它想成——知名字,求学号
map<int,int> mii;//可以把它想成——知学号,求身高
map<char,int> mci;//可以把它想成——知字符,求ascii值
map<string,double> msd;//可以把它想成——知名字,求成绩
……
3.插入
这里只讲最容易的——利用关键字插入,可以把它想成数组利用下标,放置数值。
如——
(1)int-string型,int为关键字。
map[1]="xiaoming";
map[10]="wanghong";
(2) int-int型。
map[1]=95;
map[3]=10;//如果是成绩的话,这家伙,严重不及格hhh
(3)还有很多,我不细说了。如:
char-string型。
int-double型。
char-int型。
string-string型。
反正我都用过,比较常用的。
三、常用函数
常用的就这些:
begin() //返回指向map头部的迭代器
end() //返回指向map尾部的迭代器
clear() //删除所有元素
empty() //如果map为空则返回true
erase() //删除一个元素
find() //查找一个元素
size() //返回map中元素的个数
swap() //交换两个map
insert() //插入元素
map也就说到这,它的优点是:省空间、查找快,不想数组一样,有一定的类型、数量上的局限性。而且使用方便,就是一个不错的stl。