Я использую следующий станд :: двигаться синтаксис:станда :: двигаться с тремя параметрами - итератор, принятый экземпляром
std::move(values.begin(), values.end(), dest);
dest
является прямым выходом итератором, и контейнер назначения имеет по крайней мере values.size()
детали после dest
проблема заключается в том, я называю это несколько раз в цикле, но dest
, кажется, передается по копии, и, таким образом, элементы dest
указывает на перезаписывается каждый раз, вместо того, чтобы быть приложены.
- Где документация для этого синтаксиса? Я могу найти только одну версию параметра на cppreference.
- Есть ли способ передать итератор dest по ссылке или получить его результат как возвращаемое значение, чтобы избежать «перезаписывания» поведения при вызове указанной функции несколько раз в цикле?
Я знаю, что я мог бы использовать dest += values.size();
каждый раз, но это ради лучшего знания ...
Благодаря
Что такое 'dest'? – TartanLlama
Вы, вероятно, хотите 'dest = std :: move (values.begin(), values.end(), dest);' – Jarod42
Ищите алгоритм: http://en.cppreference.com/w/cpp/ алгоритм/перемещение (обратите внимание, что в нижней части есть перекрестная ссылка для переключения между * алгоритмом * move и * utility * move) – Jarod42