我有一个 MatrixGraph 类,其成员变量 M 的类型为vector<vector<double> >
。我有一个构造函数,它接受一个无符号的,并从该输入生成一个 NxN 矩阵,我想将它初始化为零。问题是当我运行我的代码时,调试器会在我尝试分配东西时启动。我试过方法,第一个:
MatrixGraph::MatrixGraph(unsigned num_nodes) {
for(int i = 0;i < num_nodes;i++) {
for(int j = 0;j < num_nodes;j++) {
M[i][j] = 0.0;//breaks on this line
}//end i for loop
}//end j for loop
}
我尝试的第二种方法是在这里找到的,但这也不起作用:
MatrixGraph::MatrixGraph(unsigned num_nodes) {
for(int i = 0;i < num_nodes;i++) {
M[i].resize(num_nodes);//breaks on this line
}
}
我在这里评论了调用堆栈的最后一行在我得到错误之前的位置。调用堆栈上的下一行显示了类向量,并说我的 Pos 大于我的向量的大小。我假设这是一个大小为零的矩阵,但我不知道为什么我不能让它更大。有什么建议么?
谢谢!