c++11 - Can I move the contents of one vector to the end of another? -
i want following (a
, b
both vector<my_moveable_type>
):
a.insert(a.end(), b.begin(), b.end());
but want operation move b
's elements a
instead of copying them. have found std::vector::emplace
single element, not range.
can done?
you can use std::make_move_iterator
, accesses iterator returns rvalue references instead of lvalue references:
a.insert(a.end(), std::make_move_iterator(b.begin()), std::make_move_iterator(b.end()));
Comments
Post a Comment