标准::矢量的高性能替代品



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

起初,我真诚地怀疑自定义容器的性能能否大大优于 STL 中提供的容器,但在玩弄 Hopscotch Map 并亲自对 std::unordered_map 进行了 4 倍改进和 std::map 改进 30 倍(仅用于查找,因为我只在我的代码中进行查找(之后,我不禁想知道是否有 std 的替代品:向量

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

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

最新更新