【发布时间】:2012-05-13 12:20:36
【问题描述】:
我想要一个数组,grid[50000][50000],我尝试使用向量,但是当我运行代码时,它停止了。没有错误。等等。有什么建议吗?
#include <iostream>
#include <vector>
using namespace std;
typedef std::vector<int> IntVec;
typedef std::vector<IntVec> IntGrid;
IntGrid grid(50000, IntVec(50000));
int main(){
grid[0][0]=3;
cout<<grid[0][0]<<endl;
}
【问题讨论】:
-
"我想要一个数组,grid[50000][50000]," - 为什么?这是基于您提议的实施的实际要求还是感知要求?占用太多内存,可能有更好的方法,但您需要告诉我们您要解决的问题。
-
@EdS。你能看这里吗:stackoverflow.com/questions/10437622/… 我想使用该代码进行至少 50k 输入。 cac[50k][50k].
-
@vk7x:想要的东西不会让它们发生。您应该查找稀疏矩阵等。
-
来自链接问题的建议倾向于将您指向
std::map<int, std::vector<int>>或任何其他形式的稀疏存储方案。一次拥有这么多内存几乎是不可能的(除非您拥有一台高端机器并且您对操作系统的资源管理持乐观态度)。 -
@vk7x:我不太了解自动换行算法,所以在这里我无能为力。您是否介意再问一个问题,准确描述您想要做什么(即自动换行,如果可能的话,使用外行对您打算使用的算法的描述)以及您的输入大小要求?您可能会得到比这里的答案更有用的答案,因为您将询问您的实际问题,其中可能有许多您没有考虑过的解决方案。
标签: c++ vector multidimensional-array size