同様の問題がこのリンクで回答されていることは知っていますが、この C++ std::set コンパレーターを修正する のに役立ちますが、残念ながらまったく同じ問題に直面しており、その背後にある理由を理解できないため、解決するための助けが必要です。
私は VS2010 を使用しており、リリース バイナリは問題なく正常に動作していますが、デバッグ バイナリは次のように報告します。
私のコンパレータは次のようになります。
struct PathComp {
bool operator() (const wchar_t* path1, const wchar_t* path2) const
{
int c = wcscmp(path1, path2);
if (c < 0 || c > 0) {
return true;
}
return false;
}
};
私のセットは次のように宣言されています:
set<wchar_t*,PathComp> pathSet;
デバッグ バイナリがこのアサーションで失敗する理由を教えてください。セットに格納されているワイド文字列を比較するために wcscmp() 関数を使用しているためですか?
前もって感謝します!!!