linuxsir首页 LinuxSir.Org | Linux、BSD、Solaris、Unix | 开源传万世,因有我参与欢迎您!
网站首页 | 设为首页 | 加入收藏
您所在的位置:主页 > Linux基础建设 >

C++STL之map型容器

时间:2018-03-17  来源:未知  作者:admin666

Map简介

map型容器是(键key-值value)对的集合。map型容器通常可理解为关联数组,可使用键(key)作为下标来获取对应的值,类似于内置数组类型。关联的本质在于元素的值与某个特定的键相联系,而不是通过在数组中的位置来实现关联的。

总而言之,map是由许多对的键值组成的排序结构体,而且键值是独一无二的。

multimap型容器和map型容器基本是一致的。只是前者允许重复元素,而map不允许重复。

multimap:一个key能对应多个value。

map:    一个key只能对应一个value。

成员函数简介与常用公式写法

【变量声明】

map<string, string> v1; 
map<int, string> v2;      //不止这几类

【插入元素】

//用insert函数插入pair
    v.insert(pair<string, string>("r000", "student_zero"));
    v.insert(pair<int,string>(100,"ac"));
//用"array"方式插入,这是最简单常用的方法
    v["r123"] = "student_first";
    v[100] = "ac";             

【查找元素】

find()函数返回一个迭代器指向键值为key的元素,如果没找到就返回指向map尾部的迭代器。

map<int,string>::iterator it;
it=v.find(112);
if(it==v.end())                    //没找到
cout<<"we do not find 112"<<endl;
else cout<<"wo find 112"<<endl;

【删除元素】

map<int,string>::iterator it;
it=v.find(112);
if(it==v.end())
cout<<"we do not find 112"<<endl;
else  v.erase(it);                                //找到后删除112;

友情链接