1. 头文件
#include <map>
2. 简介
- 关联容器,提供一对一hash:key-mapped_value对,每个key只出现一次
- map是以模板方式实现,可以存储任意类型数据,包括自定义数据类型
- 其内部是一棵红黑树 RB Tree(二叉排序树),内部数据自动按key升序排列
3. 构造对象
map<int, string> students;
4. 常用方法
方法 | 说明 |
---|
students.insert(pair<int, string>(1, “student_one”)); | pair<type1, type2>()方式 |
students.insert(make_pair(1, “student_one”)); | make_pair方式 |
students.insert(map<int, string>::value_type(2, “student_two”)); | map<type1, type2>::value_type()方式 |
students[3] = “student_three”; | 数组方式 |
Note:
第一和第二种方式无差异,且不能互相覆盖;
第三种方式(数组方式)可以覆盖
方法 | 说明 |
---|
int size = map.size(); | 元素个数 |
int maxSize = map.max_size(); | 可容纳的最大元素个数 |
方法 | 说明 |
---|
map<int, string>::iterator iter = students.find(1); | 不等于end()表示找到 |
students.count(element) == 0/1; | 要么0要么1 |
方法 | 说明 |
---|
begin()/end() | 正向迭代器 |
rbegin()/rend() | 逆向迭代器 |
方法 | 说明 |
---|
erase(const Key& key); | 如 erase(1); 删除以1为key的元素 |
erase(iterator); | 删除迭代器所指元素 |
erase(iterator first, iterator last); | 删除迭代器区间[first, last)内的元素 |
clear(); | 相当于erase(map.begin(), map.end()); |
方法 | 说明 |
---|
swap(map<int, string>& anotherMap); | 函数原型 |
swap(map1, map2); | 方式1 |
map1.swap(map2); | 方式2 |
myMap(vec[index])++;
myMap(str[index])++;
参考文章:
std::map方法实例
created by shuaixio, 2021.06.16