我正在使用
我使用
有没有替代使用
编辑:写入性能比读取性能重要得多。它可能只读取 ~10 条目,但我不知道它将读取哪些条目。
std::map
存储大约 2000 万条目。如果不带任何容器开销存储它们,需要大约 650MB 的内存。然而,由于它们是使用 std::map
存储的,因此使用了大约 15GB 的内存(即太多了)。我使用
std::map
的原因是需要查找等于/大于/小于 x
的键。这就是为什么类似于 sparsehash
的东西行不通(因为使用那个无法通过比较查找键)。有没有替代使用
std::map
(或有序映射一般)会导致更少的内存使用?编辑:写入性能比读取性能重要得多。它可能只读取 ~10 条目,但我不知道它将读取哪些条目。
deque
(我通常建议使用排序的vector
,但我不确定您的平台是否提供650MB的连续存储)来存储所有数据点 - 随后进行一次排序操作,然后使用upper_bound
和/或lower_bound
进行查询。 - Gavi Lock