296 words
1 minute
map容器 - CPP STL
map基本概念
简介
- map中所有元素都是pair
- pair中第一个元素为key(键值),起到索引作用,第二个元素为实值(value)
- 所有的元素都会根据元素键值自动排序
本质
- map/multimap属于关联式容器,底层结构为二叉树实现
优点
- 可以根据key值快速找到value值
map/multimap区别:
- map不允许容器中有重复key值元素
- multimap允许有重复key值元素
map构造和赋值
功能描述
- 对map容器进行构造和赋值操作
函数原型
构造
map<T1,T2>mp; //默认构造map(const map &mp);//拷贝构造赋值
map& operator=(const map &mp); //重载=map大小和交换
功能描述
- 统计map容器大小以及交换map容器
函数原型
size(); //返回元素数目empty();//判断是否为空swap(st); //交换两个集合容器map插入和删除
功能描述
- map容器进行插入数据和删除数据
函数原型
insert(elem); //在容器中插入元素,详见下方insert(pair<type,type>(value1,value2));insert({v1,v2});insert(make_pair(v1,v2));insert(map<type,type>::value_type(value1,v2));operator[]; //重载[],不建议拿来插数,而是用于访问clear(); //清除所有元素erase(pos);//清除pos迭代器所指的元素,返回下一个元素迭代器erase(beg,end);//删除区间[beg,end)的所有元素,返回下一个元素的迭代器erase(key); //删除容器中值为key的元素map查找和统计
功能描述
- 对map容器进行查找数据以及统计数据
函数原型
find(key); //查找key是否存在,若存在,返回该元素迭代器;不存在,返回map.end();count(key); //统计key的元素个数(对map而言,只会是0或1)map容器排序
学习目标
- map默认排序规则按key排,从小到大,掌握如何改变规则
主要技术点
- 利用仿函数,改变排序规则
class MyCompare{public: bool operator()(int v1,int v2) const { return v1 > v2; }}
map<int,string,MyCompare> m2;Video
Share
If this article helped you, please share it with others!
map容器 - CPP STL
https://www.bilibili.com/video/BV1et411b73Z/?p=231 Some information may be outdated
Related Posts Smart