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