【问题标题】:Display Hash-Map Value C++显示哈希映射值 C++
【发布时间】:2015-09-22 00:08:42
【问题描述】:

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

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!
      }
    }

我收到以下错误:

(error) 错误 1 ​​错误 C2679: 二进制 '&lt;&lt;' : 未找到采用 'const std::pair&lt;const _Kty,_Ty&gt;' 类型右侧操作数的运算符(或没有可接受的转换)

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

【问题讨论】:

  • 你应该问一个具体的问题。
  • 已编辑。我以为它被理解了。

标签: c++ vector hashmap


【解决方案1】:

当在基于范围的 for 循环中使用时,std::map 将使用 std::pair 进行迭代。并且因为 std::coutstd::pair 不匹配,你会得到一个错误,所以不要直接使用 key_1,而是尝试 key_1.first 获取映射的键值或 key_1.second 获取映射的值地图。

【讨论】:

  • 谢谢。有用。我会尽快接受这个作为正确答案。
  • @Daqs 不过还是先试试吧。您可能会看到一种模式正在出现。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-29
  • 1970-01-01
  • 1970-01-01
  • 2018-10-13
相关资源
最近更新 更多