タイプのメンバー変数 M を持つ MatrixGraph クラスがあります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
}
そして、私が試した2番目の方法はここで見つけましたが、それもうまくいきませんでした:
MatrixGraph::MatrixGraph(unsigned num_nodes) {
for(int i = 0;i < num_nodes;i++) {
M[i].resize(num_nodes);//breaks on this line
}
}
ここで、エラーが発生する前のコールスタックの最後の行についてコメントしました。コール スタックの次の行は、クラス ベクトルを示しており、Pos がベクトルのサイズより大きいことを示しています。これはサイズゼロの行列だと思いますが、なぜ大きくできないのかわかりません。助言がありますか?
ありがとう!