我想在一个中有三个元素unordered_map
.我尝试了以下代码
#include#include #include #include typedef boost::unordered_map > mymap; mymap m; int main(){ //std::unordered_map > m; m.insert({3, std::make_pair(1,1)}); m.insert({4, std::make_pair(5,1)}); for (auto& x: m) std::cout << x.first << ": "<< x.second << std::endl; }
但是我在print语句中遇到了很多错误
'std :: pair'不是来自'const std :: __ cxx11 :: basic_string <_CharT,_Traits,_Alloc>'std :: cout << x.first <<":"<< x.second << std: :ENDL;
Humam Helfaw.. 8
打印声明中的问题.它应该是这样的:
std::cout << x.first << ": "<< x.second.first << ","<< x.second.second << std::endl; _______________________________^^^^^^^^^^^^^^__________^^^^^^^^^^^^^^^_______________
你不能直接打印std::pair
.您需要单独打印每个项目.
没有ostream& operator<<
超载,std::pair
但有一个int
.
打印声明中的问题.它应该是这样的:
std::cout << x.first << ": "<< x.second.first << ","<< x.second.second << std::endl; _______________________________^^^^^^^^^^^^^^__________^^^^^^^^^^^^^^^_______________
你不能直接打印std::pair
.您需要单独打印每个项目.
没有ostream& operator<<
超载,std::pair
但有一个int
.