До C++11
я использовал swap-to-back, чтобы избежать чрезмерных накладных расходов, например:
vector<vector<Object> > Objects;
for(/* some range */)
{
vector<Object> v;
for(/* some other range */)
{
v.push_back(/* some object */);
}
Objects.push_back(vector<Object>());
Objects.back().swap(v);
}
Как я могу использовать std::move
для перемещения v
в Objects
, чтобы избежать чрезмерных служебных данных, а не swap
?
Я знаю, что здесь есть много обходных решений, таких как несколько массивов или просто вставка непосредственно в Objects.back()
, но для этого мне нужен пример использования std::move
.