行の他の要素を変更せずに、2Dベクトルの特定の要素に番号を割り当てるにはどうすればよいですか?
2Dベクトルの要素に値を割り当てようとしていますが、値はベクトルの行全体に割り当てられています。
void prinVec2D(vector<vector<int> > & A) {
for (int i = 0; i < A.size(); i++) {
for (int j = 0; j < A[i].size(); j++) {
cout << A[i][i] << " ";
}
cout << endl;
}
}
vector<vector<int> > generateMatrix(int A) {
vector<vector<int> > ans(A, vector<int> (A, 0));
ans[1][1] = 1;
return ans;
}
int main() {
int A = 4;
vector<vector<int> > abc(A, vector<int>(A, 0));
abc = generateMatrix(A);
prinVec2D(abc);
return 0;
}
期待:
0 0 0 0 \ n 0 1 0 0 \ n 0 0 0 0 \ n 0 0 0 0 \ n
出力:
0 0 0 0 \ n 1 1 1 1 \ n 0 0 0 0 \ n 0 0 0 0 \ n
に
void prinVec2D(vector<vector<int> > &A)
{
for(int i = 0; i < A.size(); i++){
for(int j = 0;j < A[i].size(); j++){
cout << A[i][i] <<" "; } cout <<endl;
}
}
cout << A[i][i]
に置き換える必要があります cout << A[i][j]
割り当ては機能します(もちろん)配列を間違って印刷するだけです
PS PonWerは、配列を間違って印刷することを想像するのに良い考えを持っています
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加