我正在尝试编写与此相反的操作:
std::ostream outs; // properly initialized of course
std::set<int> my_set; // ditto
outs << my_set.size();
std::copy( my_set.begin(), my_set.end(), std::ostream_iterator<int>( outs ) );
它应该是这样的:
std::istream ins;
std::set<int>::size_type size;
ins >> size;
std::copy( std::istream_iterator<int>( ins ), std::istream_iterator<int>( ins ) ???, std::inserter( my_set, my_set.end() ) );
但是我坚持使用“结束”迭代器——输入插入器不能使用 std::advance ,我也不能使用具有相同源的两个流......
有什么优雅的方法可以解决这个问题吗?当然我可以使用 for 循环,但也许有更好的东西:)