Map
Map
map是C++STL中提供的容器,由红黑树构成,我们可以通过map创建所谓的键值映射的功能
map的基本使用
创建map
map<int,int> maps; //数据类型自己定义 |
map中添加键值
maps[1] = 2; |
map中遵循初始化的时候前面的数据类型,后面的值遵循初始化后面的数据类型
map访问
//由于上面已经创建了几个案例,我们就对他们进行访问 |
map遍历
//通过迭代器进行访问 |
Map迭代器
迭代器数据类型是auto
一定要记住
map首尾迭代器
首元素迭代器,代表了第一个元素
auto it = maps.begin(); |
代表了最后一个元素的后一个元素
auto it = maps.end(); |
如想要获取最后一个元素的前面一个元素的迭代器
auto it = maps.end(); |
迭代器能干什么?
其实迭代器就相当于map中每一个元素的地址,我们通过地址可以访问到对应的元素,在map里也就是键和值
如何获取到键和值呢?
auto it = maps.begin(); |
查找
map中的find主要是用来通过find(键) 来查找某一个map中元素的迭代器
auto it = maps.find(1); |
删除
map是听过键值来进行删除的
maps.erase(键值); |
判断map中是否包含某一个元素
int a = maps.count(键值); //如果找到某一个键,返回结果为1,反之返回0 |
清除map中元素
maps.clear(); |
判断map容器是否为空
maps.empty(); |
map大小(对遍历元素没有什么帮助)
cout << maps.size(); |
map和unordered_map
听名字,就知道map和unordered_map一个是有序的,一个是无序的
map存储元素的时候默认是按照键值进行排序的
而unordered_map里面的元素是混乱的
浅谈优缺点
- map占用空间少,unordered_map占用空间多
- 时间复杂度方面,map为O(logn),unordered_map为O(1)
本篇博客针对于算法做题时候,会了这些操作完全足够了,希望对你产生帮助
叭叭咯~~~
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Freedom Coding!
评论
ValineDisqus