Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/163.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C++;_C++_Containers_On Disk - Fatal编程技术网

C++ C++;

C++ C++;,c++,containers,on-disk,C++,Containers,On Disk,我需要存储大量的整数。可能有 在整数的输入流中重复,我只需要 在它们之间储存不同的信息。 我最初使用stl集,但当 整数的输入数太高。 我正在寻找一些C++容器库 请允许我存储符合上述要求的号码 由文件支持,即容器不应尝试将所有数字保留在mem中。 我不需要持久地存储这些数据,我只需要找到 其中的唯一值。因为您需要大于RAM的内存,所以您可以查看查看;可能就是你要找的 编辑:我自己没有用过它,但是从文档中可以看到-您可以使用stream::runs\u creator创建数据的排序运行(不管内存

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

因为您需要大于RAM的内存,所以您可以查看

查看;可能就是你要找的


编辑:我自己没有用过它,但是从文档中可以看到-您可以使用
stream::runs\u creator
创建数据的排序运行(不管内存中有多大),然后
stream::runs\u merge
合并排序的流,最后使用
stream::unique
过滤unique

您是否考虑过使用DB(可能)?或者它会太慢?

在断定数据库太慢之前,你至少应该认真地尝试一下。您只需要一个轻量级的键值存储。过去我使用过Berkeley DB,但这里有一个。

memcached?你能解释一下怎么用吗?我刚看了stlxxl。乍一看,它似乎没有像stl::set这样的东西。我想那太慢了。整数值的范围是什么?我不好意思把这称为答案,但也许你可以重建64位的应用程序,并在64位系统上运行。问题是主内存不够大,无法容纳所有数字,我们需要像容器一样的外部内存备份集。