我正在從Visual Studio 2008 - > 2010更改,並且在評估std ::指針集上的查找時,我在代碼中遇到了一個奇怪的錯誤。Visual C++ 2010 std :: set find broken
我知道這個版本帶來了一個變化,其中set :: iterator與set :: const_iterator具有相同的類型,以便與標準產生一些兼容性。但我不明白爲什麼以前工作的這部分代碼現在會導致崩潰?
void checkStop(Stop* stop)
{
set<Stop*> m_mustFindStops;
if (m_mustFindStops.find(stop) != m_mustFindStops.end()) // this line crashes for some reason??
{
// do some stuff
}
}
PS m_mustFindStops在崩潰時爲空。
編輯:感謝您的快速回復......我無法讓它重現一個簡單的案例 - 這可能不是一個問題與設置其自我。我認爲堆腐敗可能是一個罪魁禍首 - 我只是想知道爲什麼更改編譯器會突然導致相同代碼和相同輸入數據的損壞。
沒有repro。請發佈完整的可編譯示例。 – 2010-11-24 03:25:08
我無法重現錯誤。這表明其他事情出錯了。重現錯誤並且我們可以運行的最小可編譯示例將是完美的。 – 2010-11-24 03:28:41