C++知识点总结(33):STL(map映射)

一、意义

1. 映射的概念

映射(mapping)
键(key)与值(value)的对应关系。

map 容器
一个 STL 中常用的容器,可以将任何有序的类型(基本类型、string)映射到任何类型(基本类型、string、结构体、STL 容器)。

2. map 的特点

  • 动态存储空间
  • 插入、删除、查找效率高
  • 键与值类型定义灵活
  • 适用于判断范围较大的整数(例如在桶排序中)或者其他类型的数据(例如 string)是否存在,以及需要建立的字符(串)与其他数据类型之间的映射

二、map 相关程序

1. 定义

定义格式:map <键类型, 值类型> 容器名;
例如:

#include <map>
map <string, string> m;

2. 初始化

初始化格式:map <键类型, 值类型> 容器名{ {键1, 值1}, {键2, 值2}, ...};

#include <map>
map <string, string> m{
   
   {
   
   "a", "A"}, {
   
   "b", "B"}}; // 一定注意!没有等号!!

3. 赋值 & 访问

m["a"] = "A";
m["a"] = "B"; // 值会被覆盖
cout << m["a"]; // 输出: B
cout << m["b"]; // 输出空字符串

4. 拷贝

#include <map>
map <string, string> m2(m);

5. 所有操作

方法 功能
mp[key] = value; 修改 key 对应的 value,如果不存在则创建
mp.insert({key1, value1}, {key2, value2}); 插入纯新的键值对(不能更新){key1, value1}{key2, value2}
mp.emplace(key, value) 插入纯新的键值对(不能更新){key, value}
mp.erase(key); 根据键删除键值对
mp.clear(); 删除所有元素
mp.begin() 返回指向 map 头部的迭代器
mp.end() 返回指向 map 尾部的下一个位置的迭代器
mp.size() 返回 map 中键值对的个数
mp.empty() 判断是否为空
mp.find(key) 获得指向键 key 的迭代器,如果未找到返回 mp.end()
mp.count(key) 查看指定键 key 是否出现,出现为 1 1 1,否则为 0 0 0

三、迭代器

1. 定义

#include <map>
map <string, string> m{
   
   {
   
   "a", "A"}};
auto it = m.begin();

2. 遍历

for (auto it = m
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值