2 D vectorに値を割り当てる
959 ワード
練習の過程で2次元vectorを使う場合に遭遇し、下書きでアクセスしたくないので、反復器方式で長い間模索して、先輩に聞いてから知りました.
私は以下の間違いを犯しました.
1、vectorのサイズを指定せずに、下付きと反復器アクセスを行った.
2、第1層の反復器it_を通過するvvが2階にアクセスするときに使う「.」「->」ではなくアクセスし、反復器の使用はポインタと同じであることを忘れました.
まずvectorのサイズを指定する必要がありますが、サイズが分からないと下付きまたは反復アクセスはできません.
cin >> M >> N;
vector> m(M,vector(N));
次に、下付きまたは反復器でアクセスできます.
私は以下の間違いを犯しました.
1、vectorのサイズを指定せずに、下付きと反復器アクセスを行った.
2、第1層の反復器it_を通過するvvが2階にアクセスするときに使う「.」「->」ではなくアクセスし、反復器の使用はポインタと同じであることを忘れました.
まずvectorのサイズを指定する必要がありますが、サイズが分からないと下付きまたは反復アクセスはできません.
cin >> M >> N;
vector> m(M,vector(N));
vector>dp(M,vector(N));
次に、下付きまたは反復器でアクセスできます.
/* */
for (i = 0; i < M; i++) {
for (j = 0; j < N; j++) {
cin >> m[i][j];
}
}
/* */
for (auto it_vv = m.begin(); it_vv != m.end(); ++it_vv) {
for (auto it_v = it_vv->begin(); it_v != it_vv->end(); it_v++) { //
cin >> *it_v;
}
}