【发布时间】:2010-09-23 14:27:03
【问题描述】:
我需要一个只有两个操作的快速容器。从一个非常稀疏的域插入键(所有 32 位整数,并且在给定时间设置大约 100 个),并迭代插入的键。它应该处理 很多 插入相同的条目(例如,500k,但只有 100 个不同的条目)。
目前,我正在使用 std::set(仅插入和迭代接口),这很不错,但仍然不够快。 std::unordered_set 慢了一倍,与 Google Hash Maps 相同。我想知道针对这种情况优化了哪些数据结构?
【问题讨论】:
-
不能说这有多大影响,但如果您使用的是 MSVC 2005 或更高版本,则默认定义 _SECURE_SCL,这会强制对大多数 STL 进行边界检查和其他安全检查。试试“#define _SECURE_SCL 0”,看看是否能提高性能。
标签: c++ containers