显示哈希映射值C ++

时间:2015-07-04 08:58:12

标签: c++ vector hashmap

创建哈希映射并输出其键值的简单程序。

std::hash_map<int, std::vector<char>> numPad;

for (auto const key_1: numPad) 
    {
      for (auto const key_2: key_1.second) 
      {        
        std::cout << key_1; // Does NOT work! (*error*)
        std::cout << key_2; // Works!
      }
    }

我收到以下错误:

  

错误)错误1错误C2679:二进制'<<':找不到采用类型为'const std::pair<const _Kty,_Ty>'的右侧操作数的运算符(或者没有可接受的转换)

如何在不收到此错误的情况下显示key_2值?

1 个答案:

答案 0 :(得分:1)

在基于范围的for循环中使用时,std::map将使用std::pair进行迭代。由于std::cout std::pairkey_1不匹配,因此您收到错误,因此请尝试key_1.first获取地图的关键值key_1.second,而不是直接使用a。 {1}}获取地图的映射值。