map
1. map的概念
- 存储内容: 用于存储一组键值对(key-value pairs),其中每个键(key)都是唯一的。
- 排序特性: 根据键自动进行排序,默认使用键类型的默认比较函数。
- 底层实现: 使用红黑树(Red-Black Tree)数据结构实现。
- 时间复杂度: 插入、删除和查找操作的时间复杂度均为O(logn)
- 模板参数:
- Key: 键的类型
- T: 值的类型
- Compare: 比较函数对象类型,默认为less
- Allocator: 内存分配器类型,默认为allocator
2. map的函数
![[Pasted image 20260407212501.png]]
1)insert
- 使用方法: 传入一个键值对,用大括号括起来,如insert({key, value})。
- 时间复杂度:
O(logn)
2)find
- 功能: 查找指定key对应的元素的迭代器。
- 返回值: 返回迭代器,若未找到则返回end()。
- 时间复杂度:
O(logn)
3)count
- 功能: 统计指定key出现的次数,多用于判断key是否存在
- 返回值: 由于map中key唯一,返回值只能是0或1。
- 时间复杂度:
O(logn)
4)count功能解析
- 实际用途: 主要用于判断某个key是否存在,返回1表示存在,返回0表示不存在。
- 示例:
- 对于map{{1,3},{2,5},{3,-1}}:
- count(1)返回1
- count(0)返回0
- 对于map{{1,3},{2,5},{3,-1}}:
- 与size区别: size返回容器中元素总个数,不需要参数。
5)size
- 功能: 返回容器中元素的总个数。
- 时间复杂度:O(1)
6)lower_bound
- 功能: 返回指向第一个不小于指定键的元素位置的迭代器。
- 示例: 对于map{{1,3},{2,5},{3,-1}},lower_bound(2)返回指向{2,5}的迭代器。
- 时间复杂度:
O(logn)
二、multimap
是一种关联容器,类似于map,允许存储多个具有相同键的键值对
实际做题中,几乎用不到
1. multimap的函数
![[Pasted image 20260407212930.png]]
三、unordered_map
一般不用,不稳定

浙公网安备 33010602011771号