我使用map.find(鍵)和map.end()函數中的if語句:map.find()和map.end()迭代器據說不兼容?
if(p_Repos->returnTypeMap().find(tc[0]) != p_Repos->returnTypeMap().end())
但它不工作,我也得到一個Microsoft Visual C++運行時庫錯誤,告訴我「表達式:列表迭代器不兼容」。 tc [0]只是一個字符串,我的地圖中的關鍵位置是一個字符串。
但是,他們應該是兼容的,對吧?
任何幫助,非常感謝。
感謝, 湯姆
編輯:基於在這裏找到了答案:Finding value in unordered_map,我帶領相信這應該高清工作。
第二個編輯:
這裏是returnTypeMap()函數:
std::unordered_map <std::string, std::pair<std::string, std::string>> returnTypeMap()
{
return typeTable;
}
這裏是我的地圖的定義:
std::unordered_map <std::string, std::pair<std::string, std::string>> typeTable;
是否'returnTypeMap( )'按價值回報?如果是這樣,每個迭代器都指向一個完全不同的'map'。 – Mankarse 2013-03-16 03:19:31
Mankarse,我不確定你的意思。我應該設置一個本地地圖=存儲在我的p_Repos對象中的地圖嗎? – traggatmot 2013-03-16 03:26:17
也許你應該使用if(p_Repos-> returnTypeMap()。count(tc [0])> 0)'。 – leewz 2013-12-26 07:45:44