std :: vector的高性能替代品

时间:2017-02-05 00:41:48

标签: c++ vector stl

我从事科学计算,我想检查与std :: vector相关的改进。

首先,我真诚地怀疑自定义容器的性能远远超过STL中提供的容器,但是在使用Hopscotch Map进行玩弄后,个人基准测试比std :: unordered_map提高了4倍,比std提高了30倍: :map(仅用于查找,因为我只在我的代码中进行查找),我无法帮助但是想知道是否有替代std :: vector

1 个答案:

答案 0 :(得分:3)

当向量是合适的数据结构时,主要的改进领域是堆分配。如果随着时间的推移添加更多元素,有时候deque会更好(避免复制/移动)。除此之外,最大的问题是你会存储多少元素?如果你有几个元素组,矢量很棒。但是,如果你有很多只有少数几个元素的群体,基于std::array加上大小跟踪的内容可能会更好。

但是当你从事科学计算工作时,这对你来说肯定不是新闻 - 固定大小的阵列在你的领域非常普遍。