欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

C++STL之map

程序员文章站 2022-09-11 20:18:40
Map简介 map型容器是(键key-值value)对的集合。map型容器通常可理解为关联数组,可使用键(key)作为下标来获取对应的值,类似于内置数组类型。关联的本质在于元素的值与某个特定的键相联系,而不是通过在数组中的位置来实现关联的。 总而言之,map是由许多对的键值组成的排序结构体,而且键值 ......

Map简介

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

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

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

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

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

C++STL之map

 

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

【变量声明】

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;