誰かが私を理解するのを手伝ってくれるかもしれない非常に奇妙なエラーに遭遇しました。ベクトルが範囲外エラーで一貫してクラッシュするコードがあります。このエラーのもう 1 つの奇妙な点は、エラーの場所を突き止めるためにコード全体に多数の cout ステートメントを挿入すると、クラッシュが停止することです。
とにかく、さらなるテストとして、コードの一部に try/catch ブロックを配置しました。実装は次のようになります。
try {
// my code that is presumably causing problems
}
catch (out_of_range& oor) {
cerr << "Out of Range error: " << oor.what() << endl;
}
このコードを追加すると、バグが消えたようです。クラッシュはなくなり、キャッチに cerr メッセージが表示されることもありません。
これが理にかなっている方法はありますか?