-1
以下のコードでは、ベクトルイテレータを逆算できませんが、その理由はわかりません。私は単純に2次元配列を反復し、すべての値を0にインスタンス化しています。どこで無効な位置に反復処理していますか?ベクトル反復子が逆参照できないのはなぜですか?
vector<vector<bool>> isduplicate(100);
for(int i=0;i<isduplicate.size();i++){
for(int s=0;s<isduplicate.size();s++)
isduplicate[i][s]=false;
}
Uhh ...イテレータはどこですか? – MGZero
コードはコンパイルされますが、クラッシュします。内側の 'for'文の前に外側の' for'文の次の行を入れてみましょう: 'isduplicate [i] .resize(100);'これは100x100配列なのでクラッシュしません内部 'for'ステートメントで)、somethingx100配列ではありません。 2番目の次元に異なるサイズが必要な場合は、 'resize'呼び出しでそれを指定し、内側の' for'文を 's
chris
@chris: 'reserve 'ではなく' resize'でなければなりません。 'reserve'は、新しいメモリー割り当てなしで要求されたサイズまで' push_back 'することができますが、 '[]'演算子を介して直接要素にアクセスするには、' resize'を呼び出さなければなりません。 –