map
对于map而言,其底层是基于红黑树实现的,因此,map内部元素的排列是有序的,因此,其优点在于:
(1)有序性,这也是map结构最大的优点,其元素的有序性在很多应用中都会简化很多的操作。
(2)map的查找、删除、增加等一系列操作时间复杂度都很稳定,为O(logn)
而缺点在于:
查找、删除、增加等操作平均时间复杂度较慢,与n相关。
unordered_map
unordered_map底层则是基于哈希表实现的,其元素的排列顺序是杂乱无序的。同时,其以(key,value)对的形式存储,因此空间占用率高。
Unordered_map的查找、删除、添加的时间复杂度不稳定,平均为O©,取决于哈希函数。极端情况下可能为O(n)
当我们不需要数据有序,那么使用unordered_map是一个更好的选择。