创建哈希映射并输出其键值的简单程序。
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值?
答案 0 :(得分:1)
在基于范围的for循环中使用时,std::map
将使用std::pair
进行迭代。由于std::cout
std::pair
与key_1
不匹配,因此您收到错误,因此请尝试key_1.first
获取地图的关键值key_1.second
,而不是直接使用a
。 {1}}获取地图的映射值。