map

1. map的概念
  • 存储内容: 用于存储一组键值对(key-value pairs),其中每个键(key)都是唯一的。
  • 排序特性: 根据键自动进行排序,默认使用键类型的默认比较函数。
  • 底层实现: 使用红黑树(Red-Black Tree)数据结构实现。
  • 时间复杂度: 插入、删除和查找操作的时间复杂度均为O(log⁡n)
  • 模板参数:
    • Key: 键的类型
    • T: 值的类型
    • Compare: 比较函数对象类型,默认为less
    • Allocator: 内存分配器类型,默认为allocator
2. map的函数

![[Pasted image 20260407212501.png]]

1)insert
  • 使用方法: 传入一个键值对,用大括号括起来,如insert({key, value})。
  • 时间复杂度:
    O(log⁡n)
2)find
  • 功能: 查找指定key对应的元素的迭代器。
  • 返回值: 返回迭代器,若未找到则返回end()。
  • 时间复杂度:
    O(log⁡n)
3)count
  • 功能: 统计指定key出现的次数,多用于判断key是否存在
  • 返回值: 由于map中key唯一,返回值只能是0或1。
  • 时间复杂度:
    O(log⁡n)
4)count功能解析
  • 实际用途: 主要用于判断某个key是否存在,返回1表示存在,返回0表示不存在。
  • 示例:
    • 对于map{{1,3},{2,5},{3,-1}}:
      • count(1)返回1
      • count(0)返回0
  • 与size区别: size返回容器中元素总个数,不需要参数。
5)size
  • 功能: 返回容器中元素的总个数。
  • 时间复杂度:O(1)
6)lower_bound
  • 功能: 返回指向第一个不小于指定键的元素位置的迭代器。
  • 示例: 对于map{{1,3},{2,5},{3,-1}},lower_bound(2)返回指向{2,5}的迭代器。
  • 时间复杂度:
    O(log⁡n)

二、multimap

是一种关联容器,类似于map,允许存储多个具有相同键的键值对
实际做题中,几乎用不到

1. multimap的函数

![[Pasted image 20260407212930.png]]

三、unordered_map

一般不用,不稳定

posted @ 2026-04-08 13:18  Sherry_pro  阅读(16)  评论(0)    收藏  举报