2

我需要存储大量整数。整数的输入流中可能有重复项,我只需要在它们之间存储不同的内容。我最初使用的是 stl set,但是当输入的整数数量太高时它会 OutOfMem。我正在寻找一些 C++ 容器库,它允许我存储可能由文件支持的上述要求的数字,即容器不应尝试将所有数字保留在内存中。我不需要持久存储这些数据,我只需要在其中找到唯一值。

4

4 回答 4

1

看看STXXL;可能是你正在寻找的。

编辑:我自己没有使用它,但是从文档中 - 您可以使用它stream::runs_creator来创建数据的排序运行(无论多少适合内存),然后stream::runs_merger合并排序的流,最后用于stream::unique过滤唯一性。

于 2010-06-03T14:58:33.173 回答
0

由于您需要大于 RAM 允许的容量,因此您可以查看memcached

于 2010-06-03T14:54:15.340 回答
0

您至少应该认真地尝试一个数据库,然后才能断定它太慢了。您所需要的只是轻量级键值存储之一。过去我使用过 Berkeley DB,但这里有一个其他的列表

于 2010-07-26T22:51:30.493 回答
0

您是否考虑过使用 DB(可能是SQLite)?还是会太慢?

于 2010-06-03T15:13:13.403 回答