地圖我有2個元素(現在)地圖:搜索的價值
#define IDI_OBJECT_5001 5001
#define IDI_OBJECT_5002 5002
/.../
ResourcesMap[IDI_OBJECT_5001] = "path_to_png_file1";
ResourcesMap[IDI_OBJECT_5002] = "path_to_png_file2";
我試圖實施該搜索地圖的方法。我傳遞字符串參數(文件路徑)和方法返回INT(地圖的鍵值)
int ResFiles::findResForBrew(string filePath)
{
string value = filePath;
int key = -1;
for (it = ResourcesMap.begin(); it != ResourcesMap.end(); ++it)
{
if (/*checking if it->second == value */)
{
key = it->first;
break;
}
}
return key;
}
類ResFiles { 市民: ResFiles(); 〜ResFiles();
map <int, string> ResourcesMap;
map <int, string>::const_iterator it;
void filenamesForBrew();
int findResForBrew(string filePath);
private:
};
我該如何檢查它 - > second-> ==值,然後返回該鍵? 我會感謝一些幫助。提前致謝。
那麼'it-> second == value'有什麼問題? – 2012-11-27 10:56:09
你已經擁有了它,只要'if(it-> second == filePath)返回它 - > first;'。 –
我已經試過了,並且可視化標記爲錯誤: 「錯誤C2678:二進制'==':找不到操作符找到類型爲'const std :: string'的左手操作數(或者沒有可接受的轉換) 「 –