それらのソートされていないベクトルに格納されている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) );
}
意図が明確であることを願っています。
更新:私のアルゴリズムでは、インプレースソートが許可されていません。今日誰かが気分がいいなら(私は尋ねていません、私の質問については上記を参照してください)、この状況のためにそれを自由に実装して見せてください。私は本当に「移動による並べ替え」が必要です。そして、なぜ引っ越しがそれほど高価になるのか、私にはよくわかりません。