[英]std::unordered_map iterator deference problem
我有如下代碼:
#include <iostream>
#include <unordered_map>
#include <string>
void foo(const std::unordered_map<char, std::string>& uom){
auto it2=uom.find('S');
if(it2!=uom.end()) //NEVER FORGET THIS
std::cout<< *it2 <<std::endl;
}
在這個 function 中,我得到了 *it2 的錯誤。 錯誤是“二進制表達式的無效操作數”。 我找不到解決此錯誤的方法。 誰能幫我? 謝謝你。
find
返回的迭代器是鍵和值的迭代器,形式為std::pair<KeyT, ValT>
(在您的例子中為std::pair<char, std::string>
)。 因此,為了訪問與您查找的鍵關聯的值,您需要使用it2->second
(即對中的第二項)。 請參閱 文檔中的示例代碼。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.