游戏中的展销系统使用的数据结构

1️⃣ std::map

  • 底层结构:红黑树(有序平衡二叉搜索树)。

  • 键值特点 :键 有序 (默认用 < 比较)。

  • 查找/插入/删除O(log n)

  • 迭代顺序:按键升序遍历。

  • 适合场景 :需要按顺序遍历、按区间查找、或经常做 lower_boundupper_bound 的情况。


2️⃣ std::unordered_map

  • 底层结构:哈希表(hash table)。

  • 键值特点 :键 无序(存储顺序不可预测)。

  • 查找/插入/删除 :平均 O(1),最坏 O(n)(当哈希冲突严重时)。

  • 迭代顺序:不可保证顺序,且随着 rehash 改变。

  • 适合场景:不关心顺序、只追求快速查找的情况。


3️⃣ std::multimap

  • 底层结构 :红黑树(与 map 相同)。

  • 键值特点允许相同键map 的 key 必须唯一,multimap 可以重复)。

  • 查找/插入/删除O(log n)

  • 迭代顺序 :按键升序遍历(同 map)。

  • 适合场景:需要一个键对应多个值时。


🔎 主要区别总结表

容器 底层结构 是否有序 是否允许重复键 查找/插入/删除复杂度 迭代顺序 适用场景
map 红黑树 有序 O(log n) 按键升序 需要排序或区间查找
unordered_map 哈希表 无序 平均 O(1) 不保证 高速查找
multimap 红黑树 有序 O(log n) 按键升序 一个键多值

应用例子

1、unordered_map做订单容器

2、multimap做时间等索引

相关推荐
LuminousCPP9 小时前
数据结构-双向循环链表
c语言·数据结构·笔记·链表
白狐_79810 小时前
408数据结构第5章:树与二叉树②——遍历、线索树、森林与哈夫曼
数据结构·算法·深度优先
Jasmine_llq11 小时前
《P15800 [GESP202603 六级] 选数》
数据结构·long long·逆序线性 dp·从后往前推导·转移严格遵循题意·防止总和溢出·复杂度on
疯狂打码的少年12 小时前
【数据结构】串(字符串):基本概念与存储
数据结构·笔记
纵有疾風起13 小时前
线性表的定义与基本操作 — 从逻辑结构到 ADT 接口
数据结构·算法·408·线性表·adt
wuyk55513 小时前
1.栈:后进先出的线性数据结构
c语言·数据结构·stm32·单片机
LuminousCPP14 小时前
数据结构-时间与复杂度|时间/空间复杂度 + 两道力扣练习 + 二分查找复盘
c语言·数据结构·经验分享·算法·leetcode
Nil20814 小时前
leetcode 三数之和
数据结构·算法·leetcode
noipp15 小时前
推荐题目:洛谷 P16689 出征
java·开发语言·数据结构·c++·算法·洛谷·luogu
青山木15 小时前
Hot 100 --- 最小栈
java·数据结构·算法·leetcode