C++中 map 和 unordered_map 的区别是什么?
发布于 2022-09-21 08:51:56
关注者
0
被浏览
28
5 个回答
-
map是基于二叉查找树,插入查询时间复杂度为O(logn),且元素是排序的。 umap是基于哈希表实现,查找O(1),无序。
-
我知道的是存储方式不一样,
-
最大的区别是unoedered\_map底层采用哈希表的方式实现,不会像map随着数据量的增加,访问时间变得越来越长,而是相对恒定的值。在大数据量时采用unordered\_map,会有明显的效率优势。
-
map底层红黑树;unordered\_map底层维护一个vector of list。 map插入删除O(logn);unordered\_map则为O(1)。 map迭代器失效:删除时的结点的迭代器; unordered\_map迭代器失效:删除同上,插入如果引发rehash则迭代器全部失效。
-
按关键字有序和无序的区别。