簡體   English   中英

std::unordered_map 迭代器遵從問題

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM