map容器
map容器简介
- map是关联容器,存储键值对(key-value),并根据键值自动排序(默认升序)
- 底层实现是红黑树
- 每个元素是一个pair,由key和value组成
- 不允许出现相同的key,若插入相同key的新值,则旧值会被覆盖
#include<map>
map/multimap构造
map<T1, T2> mapTT;
multimap<T1, T2> multimapTT;
map<int, char> mapA;
map<string, float> mapB;
插入
map.insert(…); //插入元素,返回pair
三种方法:
map.insert(pair<int, string>(3, "A")); //通过pair插入map.inert(map<int, string>::value_type(3, "A")); //通过value_type插入insert不会覆盖
map[3] = "A"; //通过数组形式插入先寻找key,如果存在,则修改value(先删除,再添加),如果不存在,则插入
1 | class Student{ |
迭代
map中每个元素都是一个pair
1 | for (map<int, string>::iterator it = map.begin(); it != map.end(); it++){ |
获取对应value
使用
[]string str = map[3];有风险,如果key不存在,则返回默认值(string对应
" ")使用find()函数,成功返回对应的迭代器,失败返回end() 的返回值
map<int, string>::iterator it = mapS.find(3);使用
at()函数,如果pair不存在会抛出”out_of_range异常”cout << map.at(3) << endl;
- Title: map容器
- Author: SyEic_L
- Created at : 2025-03-15 15:33:30
- Updated at : 2025-03-15 17:07:11
- Link: https://blog.syeicl.vip/2025/03/15/map容器/
- License: This work is licensed under CC BY-NC-SA 4.0.
Comments