二元&#39;&gt;&gt;&#39;:没有找到哪个运算符采用类型&#39; std :: pair <int,int>&#39;的右手操作数。

时间:2017-08-17 18:31:54

标签: c++ visual-studio c++11 templates binary-operators

我收到了这个错误

std:map<std:string,std::string> data{std::istream_iterator<std::pair<int,int>>(in),std::istream_iterator<std::pair<int,int>> ()};

是Visual Studio看到&gt;&gt;作为二元运算符而不是迭代器和对的右括号?如何解决这个问题?

1 个答案:

答案 0 :(得分:4)

这与>>中的std::istream_iterator<std::pair<int,int>>无关。这与std::istream_iterator调用提供的流operator >>以获取流中的元素有关。默认情况下operator >>没有std::pair,所以除非您提供一个,否则会出现编译错误。