C++ C++;2d向量|进程终止错误-1073741510
在程序终止后,我得到以下语句:(使用代码::块) 我在尝试初始化一个大小为C++ C++;2d向量|进程终止错误-1073741510,c++,vector,stack-overflow,C++,Vector,Stack Overflow,在程序终止后,我得到以下语句:(使用代码::块) 我在尝试初始化一个大小为数组[800][800]的2d数组时遇到了这个错误,所以我发现我需要使用2d向量。我的代码如下: int no_of_nodes = 800; vector< vector<int> > adjacency_matrix; for (int i = 0; i < no_of_nodes; i++){ vector<int> aRow;
数组[800][800]
的2d数组时遇到了这个错误,所以我发现我需要使用2d向量。我的代码如下:
int no_of_nodes = 800;
vector< vector<int> > adjacency_matrix;
for (int i = 0; i < no_of_nodes; i++){
vector<int> aRow;
for (int j = 0; j < no_of_nodes; j++){
aRow.push_back(0);
}
adjacency_matrix.push_back(aRow);
}
//for each line in a file...
adjacency_matrix[node1][node2] = 1;
adjacency_matrix[node2][node1] = 1;
但是我仍然得到堆栈(?)错误。任何帮助都将不胜感激。
我仍然希望使用大于800的大尺寸向量 什么是
邻接矩阵[node1][node2]
中的node1
和node2
。根据我的粗略计算,您正在使用大约3兆的内存,因此我认为分配不是问题,因为您不再使用堆栈(使用向量),我正在从文件输入读取,node1
和node2
是文件每行的整数。是否有可能node1
和node2
索引是负数或是可笑的?@StaticBeagle没有,但你让我意识到了这个问题。在我的示例中,由于文件中的节点上升到no\u of_nodes
或800,因此没有索引800,因为我的for循环是i
。现在可以了。谢谢你,哈哈哈!出于某种原因,我一直认为那些“节点”超出了范围哈哈。我很高兴你的问题解决了。
//for each line in a file...
adjacency_matrix[node1][node2] = 1;
adjacency_matrix[node2][node1] = 1;