用整数密钥和向量的地图之间的差异

Difference Between Map with Integer Key and Vector

本文关键字:地图 之间 向量 整数 密钥      更新时间:2023-10-16

vector是用整数键的unordered_map的专业形式吗?似乎是因为向量也有整数键。

如果没有,有什么区别?

主要区别在于数据的存储方式。

a vector将数据存储在其大小的内部数组中,并添加更多元素。unordered_map在内部使用哈希表。

实际上, vector可以在背面给您摊销的持续时间插入(它需要不时调整和复制/移动所有内容),持续的时间访问索引以及直至线性的时间插入和删除(所有后续的时间元素必须转移)。另外,由于vector是连续的,因此您可以将其传递到期望C风格数组的功能中。

unordered_map可以通过键向您摊销的持续时间查找(因为哈希不是完美的,并且碰撞迫使查找通过内部链接列表穿越),摊销恒定时间插入和删除。

请参阅:http://en.cppreference.com/w/cpp/container/unordered_map和:http://en.cppreference.com/w/cpp/container/vector

nope, vector中的索引是连续的,在 map中,它们不必是。

另外,vector中的值保证在连续内存中,而不是在map中。

这两个暗示着这两个操作的大多数操作。