【发布时间】:2011-08-13 03:46:33
【问题描述】:
我想将存储在它们的未排序向量中的 unique_ptr 移动到另一个向量,该向量将包含指针的排序向量。
确定移动 unique_ptr 不会自动擦除第一个向量中的元素吗?我该怎么做?
我想做的例子:
std::vector<std::unique_ptr<T> > unsorted, sorted;
// fill the "unsorted" vector
while( unsorted.size() > 0 )
{
const auto it = find_next_element_to_add_to_sorted(unsorted);
sorted.push_back( std::move(*it) );
}
我希望意图很明确。
更新:my algorithm 不允许就地排序。如果今天有人感觉很好(我不是在问,我的问题见上文),请随时针对这种情况实施它并向我展示。我真的需要“按动作排序”。而且我真的不明白为什么搬家会那么贵很多。
【问题讨论】:
标签: c++ c++11 move-semantics unique-ptr