2017-08-17 73 views
-2

我recieving这个错误在那里我有二进制“>>”:没有运营商发现这需要类型的右手操作数“的std ::对<int,int>”

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

难道是Visual Studio是看到>>作为二元运算符而不是迭代器和对的右括号?这怎么解决?

+0

您使用的是pre C++ 11编译器吗? – user0042

+3

哪个版本的Visual Studio?简单的解决方法是在''>''而不是'>>' –

+0

'stdistream_iterator' - >'std :: istream_iterator' – tkausl

回答

4

这与std::istream_iterator<std::pair<int,int>>中的>>无关。这与std::istream_iterator调用提供的流的operator >>来从流中获取元素有关。 std::pair默认没有operator >>,所以除非你提供一个,否则你会得到一个编译器错误。

相关问题