2017-08-17 46 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 >>,所以除非你提供一個,否則你會得到一個編譯器錯誤。

相關問題