如何组合包含std :: unique_ptr的两个向量?

时间:2014-10-11 18:16:02

标签: c++ pointers c++11 vector stl

如果我有两个包含std :: unique_ptr<>的向量,有没有办法将向量b添加到向量a的末尾,从而删除向量b?

例如:

std::unique_ptr<std::vector<int>> a(&someintvector);

std::unique_ptr<std::vector<int>> b(&someotherintvector);

我如何将向量b移动到向量a的末尾?

2 个答案:

答案 0 :(得分:5)

您将b的内容移至a

std::move(std::begin(*b), std::end(*b), std::back_inserter(*a));

答案 1 :(得分:3)

将元素移动到a的另一种方法:

a->insert(a->end(), std::make_move_iterator(b->begin()), std::make_move_iterator(b->end()));