我想知道是否有像以下一样光滑的方式
copy(istream_iterator<int>(cin), istream_iterator<int>(),back_inserter(v));
当输入按照它们出现的顺序成对出现时,将int
对复制到vector<pair<int,int> >
?
感谢。
答案 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对的格式。