在不满足C ++内存要求的情况下处理大型数组的最佳方法是什么?

时间:2015-07-03 19:02:51

标签: c++ arrays

我有两个字符串数组,都有250k +项。当我试图将这些硬编码到我的C ++程序中时,它陷入了编译阶段。我目前有两个字符串作为CSV .txt文件,例如{...“fksdfjsa”,“fsdajhfisa”,“wgferwjhgo”......}。

我应该将它们作为数组保存在不同的C ++程序中并尝试导入它们,还是应该在迭代值时以某种方式对它们进行流式传输?如果是这样,我该怎么做?为了它的价值,我打算将第一个数组的每个元素与第二个数组的每个元素进行比较。

3 个答案:

答案 0 :(得分:2)

只需在运行时从CSV文件中读取数据即可。了解<fstream>标准库标题。

答案 1 :(得分:0)

使用std::fstream读取数据并使用std::vector代替创建数组

答案 2 :(得分:0)

我肯定会从文件中读取输入。除此之外:您可以开始调试/测试较小的输入文件。

如果您使用谷歌阅读C ++ CSV阅读器,您可以节省自己调试时间。

最后:没有描述这个练习的目标,但是“...比较每个元素......”天真地完成需要很长时间。如果您正在寻找匹配项:请先考虑对输入进行排序并并行运行列表。这将使它恢复到线性时间。