-2

forループ

これらの2つの関数は私のcppファイルの一部です。ベクトルタイプはクラスタイプ(WordInText)です。

私のプログラムがこれらのループに入ると、1つのループ内でプログラムから抜け出します。

4

3 に答える 3

7

私はあなたが欲しいと思う:

iter != wordintext_vec.end()

それよりも:

iter < wordintext_vec.end()

于 2012-05-09T21:24:03.217 に答える
2

ループ条件を間違った方法で実行しています。「未満」ではなく「等しくない」と比較してください。返されたイテレータは、比較するとポインタのように機能し、未定義の動作を引き起こします(つまり、ループは終了に達する前にいつでも終了する可能性があります)。

この問題を解決するには、「等しくない」と比較してください。

for(vector<WordInText>::const_iterator iter = wordintext_vec.begin(); iter != wordintext_vec.end(); ++iter) {
    // ...
}
于 2012-05-09T21:25:07.120 に答える
0

このメソッドを最初に入力するときは、ベクトルに要素が含まれているかどうかを確認してください。

(擬似コード)のようなことができるはずです:

if(wordintext_vec.length == 0)またはif(wordintext_vec.isnull())

{{

ERROR_LOGIC( "ベクターは空です");

}

于 2012-05-09T21:30:51.860 に答える