2 D vectorに値を割り当てる

959 ワード

練習の過程で2次元vectorを使う場合に遭遇し、下書きでアクセスしたくないので、反復器方式で長い間模索して、先輩に聞いてから知りました.
私は以下の間違いを犯しました.
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;
	}
}