Вопрос о std::move для range: https://en.cppreference.com/w/cpp/algorithm/move
Полезно ли делать .reserve перед тем, как добавлять элементы в конец контейнера с помощью вышеупомянутой функции и std::back_inserter? Или STL сам это уже делает?
std::vector<T> result;
while (someCondition) {
// ...
std::vector<T> part = process();
result.reserve(result.size() + part.size()); // <-- сабж, полезно ли?
std::move(part.begin(), part.end(), std::back_inserter(result));
}