【发布时间】:2014-11-29 21:55:06
【问题描述】:
我想解决 Levenshtein_distance这个字符串长度过大的问题。
编辑2:
正如Bobah所说,标题是小姐领先,所以我更新了questoin的标题。
初始 title was 如何在 c++ 中声明 100000x100000 二维整数? Content was
有任何方法可以在 c++ 中声明 int x[100000][100000]。
当我全局声明它时,编译器会生成 error: size of array ‘x’ is too large 。
一种方法是使用 map< pair< int , int > , int > mymap 。
但是分配和解除分配需要更多时间。
还有其他方法,例如 uisng vector<int> myvec ;
【问题讨论】:
-
您的机器上有 40 GB 内存吗?因为这就是数组需要多少。
-
您知道您的阵列将占用 40 或 80 GB 空间吗?你有那么多内存吗?
-
现在我看到它正在走向XY Problem
-
@user3919801 如果您考虑一下,您实际上并不需要整个数组,因为大多数迭代中的大多数元素都是相同的。基本上,您将需要 2 * 100000 个元素
strings 和一个vector,它最多可以包含从字符串a到字符串b的 100000 次转换。 -
@user3919801 您链接的维基百科文章包含一个只需要两个矩阵行的算法。
标签: string algorithm memory-management string-matching information-theory