unordered_map 与 map 的区别

map 是基于红黑树实现,O(lgn) 的时间复杂度完成查找、插入和删除,内部是有序的

unordered_map 是基于 hash_table 实现

map unordered_map
实现原理 红黑树 hash_table
有序性 有序 无序
时间复杂度 查找、插入和删除都是 O(lgn) 查找、插入和删除平均 O(1),最坏 O(n)
内存占用 更少 更多
使用场景 需要数据有序;对内存敏感 大多数情况下选择 unordered_map,特别是需要查找的情况