次のコードは、このエラーの原因となっている:私は、エラーの時にsearchDepth - depth
の値をチェックすると「ベクトルイテレータ+オフセットが範囲外です」というエラーが表示されるのはなぜですか?
if (bestLine.size() > searchDepth - depth)
bestLine.erase(bestLine.begin(), bestLine.end() - searchDepth - depth);
、それは0
でした。
ので、基本的に、
if (bestLine.size() > 0)
bestLine.erase(bestLine.begin(), bestLine.end());
は、このエラーの原因となっています。 (または、以下のコメントを参照してください)
私の知る限りでは、上記のコードは、ベクトル全体を消去する必要があります。
私は間違っていますか?
あなたは(あなたが本質的に同じだと思います)は、第2のコードで最初のコードを交換し、エラーはまだ来るかどうかを確認しましたか? – Nawaz
良いアイデア。いいえ、私はエラーを受け取りませんでした。今私は本当に混乱しています。これらの2行の前に 'cout << searchDepth-depth;'を追加し、デバッグアサーションの前に2つのゼロを見ました。 –
式 'bestLine.end() - (searchDepth - depth)'に括弧を入れてみてください。 – Blastfurnace