gpt4 book ai didi

c++ - 为非常大的列表选择 STL 容器

转载 作者:行者123 更新时间:2023-11-30 01:29:33 25 4
gpt4 key购买 nike

我有一个非常大的项目列表(约 200 万),我想优化访问速度。我使用迭代器 (++it) 遍历项目。
现在代码是使用 std:map<std::wstring, STRUCT> 实现的.
我想知道是否值得用 std::deque<std::pair<std::wstring, STRUCT>> 更改 std::map .我想我会利用指针算法并最大程度地减少缓存未命中。值得吗?
我知道分析是答案,但在实现之前我需要一个意见......

最佳答案

如果您事先知道大小,那么 std::Vector 显然是您的对象不会太大的方法。

std::vector<Object> list;
list.reserve(2000000);

然后照常填写。

这是最快且内存消耗最少的方法。但是,您需要能够分配足够的连续内存。但除非你的对象是 1kb 大,否则这应该不是问题。

关于c++ - 为非常大的列表选择 STL 容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5727648/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com