是否有类似的方法从stdin读取整数对到vector <pair <int,int>&gt;在C ++中</pair <int,int>

时间:2011-01-25 21:07:08

标签: c++

我想知道是否有像以下一样光滑的方式

copy(istream_iterator<int>(cin), istream_iterator<int>(),back_inserter(v));

当输入按照它们出现的顺序成对出现时,将int对复制到vector<pair<int,int> >

感谢。

2 个答案:

答案 0 :(得分:4)

boost::zip_iterator可以使用。

copy(boost::make_zip_iterator(
         boost::make_tuple(istream_iterator<int>(cin),
                           istream_iterator<int>(cin)),
     boost::make_zip_iterator(
         boost::make_tuple(istream_iterator<int>(),
                           istream_iterator<int>()),
     back_inserter(v));

答案 1 :(得分:3)

你可以这样做 - 但你需要先为对子类编写自己的operator >>。此运算符是上述调用的全部秘密。它的实际实现取决于你的int对的格式。