Vector是一个数组周围的容器.
无序映射是二叉树周围的容器.
这意味着它们具有不同的性能特征.一些例子:
主要区别在于数据的存储方式.
A vector将数据存储在调整大小的内部数组中,并添加更多元素.一个unordered_map内部使用哈希表.
实际上,a vector给你在后面进行摊销的恒定时间插入(它需要一次调整大小和复制/移动所有内容),通过索引进行恒定时间访问,以及最多线性时间插入和删除(所有后续元素必须是移动).此外,由于a vector是连续的,您可以将其传递给期望c样式数组的函数.
unordered_map 为您提供按密钥分摊的常量时间(因为散列不完美,并且冲突迫使查找遍历内部链接列表),分摊的常量时间插入和删除.
请参阅:http://en.cppreference.com/w/cpp/container/unordered_map 和:http://en.cppreference.com/w/cpp/container/vector
| 归档时间: |
|
| 查看次数: |
4908 次 |
| 最近记录: |