用整数密钥和向量的地图之间的差异
Difference Between Map with Integer Key and Vector
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
中。
这两个暗示着这两个操作的大多数操作。
相关文章:
- C++中std::resize(n)和std::shrink_to_fit之间的区别
- int(c) 和 c-'0' 之间的区别。C++
- 为什么不;名字在地图上是按顺序排列的吗
- 基于多个条件处理地图中的所有元素
- 在cuda线程之间共享大量常量数据
- 在c代码之间共享数据的最佳方式
- Mix_Init和Mix_OpenAudio SDL之间的区别是什么
- C++ 使用 assign 函数的字符串与直接使用 '=' 更改值的字符串之间的区别
- 在C++中将矢量转换为嵌套地图
- VSOMEIP-2个设备之间的通信(TCP/UDP)不工作
- std::atomic和std::condition_variable wait,notify_*方法之间的区别
- 大小相等但成员数量不同的结构之间的性能差异
- 在地图和列表之间查找标准容器
- 有序地图字符串搜索与整数搜索之间的时间复杂度
- C STL,我想知道地图中的双向迭代器和操作员[]之间有什么不同
- 用整数密钥和向量的地图之间的差异
- 在两个略有不同的std ::地图之间投射
- 2d 地图上 2 点之间的航点生成器
- 我在地图中有9个元素,但begin()和end()之间的距离只有2
- 基于组件的游戏对象的阵列和地图之间的优点和缺点