我有一个MatrixGraph类,其中一个成员变量M的类型为vector<vector<double> >
。我有一个构造函数,它接受一个unsigned参数,并从该输入创建一个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大于向量的大小。我猜想这是一个大小为零的矩阵,但我不知道为什么不能将其变得更大。有什么建议吗?
谢谢!