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

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做时间等索引

相关推荐
Miraitowa_cheems15 分钟前
LeetCode算法日记 - Day 59: 字母大小写全排列、优美的排列
java·数据结构·算法·leetcode·决策树·职场和发展·深度优先
岑梓铭25 分钟前
《考研408数据结构》第三章(3.1 栈)复习笔记
数据结构·笔记·考研·408
Zzzzmo_3 小时前
Java数据结构:ArrayList与顺序表2
java·数据结构
Jiezcode4 小时前
LeetCode 148.排序链表
数据结构·c++·算法·leetcode·链表
特立独行的猫a5 小时前
JSNES游戏模拟器在 Node.js 环境下的测试使用及高清显示优化
游戏·node.js·nes·jsnes
nsjqj5 小时前
数据结构:Map 和 Set (二)
java·开发语言·数据结构
土丁爱吃大米饭6 小时前
千年游戏智慧:传承的密码
游戏·传承·游戏设计·游戏历史·古老游戏·古代游戏
YouEmbedded8 小时前
解码数据结构内核链表
数据结构·链表·内核链表
Han.miracle8 小时前
数据结构——二叉树学习
数据结构·学习