-2
のデバッグ私は特別な順序でセットを書きました。のstd ::設定の問題
ListCases.find(9);
への呼び出しは、逆参照可能なイテレータを返さないため、値9を削除できません。 しかし、私は、次のループでそのセットのすべての値を印刷するとき:
for (auto & eVal : ListCases)
std::cerr << " " << eVal;
私は値9は、格納された値のリストに含まれていることがわかります。
別のプログラムでコードを分離すると、バグが消えます。コンパイルオプション-fsanitize = undefinedでclang ++を実行すると、他のチェックで何も返されませんでした。
これについてはどのような説明がありますか?他にどのようなデバッグオプションが考えられますか?
逆参照できないイテレータを返さないとはどういう意味ですか? – SergeyA
あなたの実際のコードは実際の関数でセットを初期化していますか?さもなければ、すべての賭けはかなり離れている。 – molbdnilo
完全なサンプルプログラムがあれば、ここで助けになります。 A *推測*は、あなたの比較関数が正しく機能していないことになります。キー(ints)に厳密な弱い順序を課す必要があります。比較関数は何をしますか? –