【发布时间】:2014-10-01 01:53:53
【问题描述】:
您能否分享您对存储大量名称并在这些名称上执行搜索的最佳 STL 数据结构的看法?
编辑: 名称不是唯一的,并且列表可以随着不断添加新名称而增长。总的来说,我指的是 100 万到 1000 万个名字。
【问题讨论】:
-
名称是否唯一?您是创建此容器一次然后搜索多次,还是有一些添加/删除项目以及搜索?是否需要按字母顺序遍历容器?
-
动态数组或 std::vector(物理上相同)。 set和链表不适合大量元素,因为添加时间太长。
-
另外,多大是多大?如果只有几百万个长度为 10 个字符的名称,则 std::map 在配置合理的笔记本电脑上可能没问题。如果您需要数十亿个名称,每个名称都有 100 个字符长,或者如果您有一个内存受限的系统,您可能需要一个核外解决方案,这可能会排除 STL(尽管 Google 找到了 stxxl.sourceforge.net,它声称处理这种情况)。
标签: c++ visual-c++ c++11