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;