Информация об изменениях

Сообщение Re[3]: Копирование вектора (std::vector) от 29.10.2019 13:15

Изменено 29.10.2019 13:52 rg45

Re[3]: Копирование вектора (std::vector)
Здравствуйте, Basil2, Вы писали:

B>Разве copy не сделает этого автоматически? Это же интервальная функция, она должна понимать размер коипируемого. По идее, трейты в шаблонах вполне позволяют понять тип итератора, вычислить длину и зарезервить.


Нет конечно. Copy занимается только копированием, такова семантика алгоритма. И в качестве назначения копирования ему передается не весь контейнер, а только итератор. Это запросто может быть какой-то кастомный итератор определенный пользователем. И о том, чтобы этот итератор не вышел за дозволенные пределы, должна позаботиться вызывающая функция.
Re[3]: Копирование вектора (std::vector)
Здравствуйте, Basil2, Вы писали:

B>Разве copy не сделает этого автоматически? Это же интервальная функция, она должна понимать размер коипируемого. По идее, трейты в шаблонах вполне позволяют понять тип итератора, вычислить длину и зарезервить.


Нет конечно. Copy занимается только копированием, такова семантика алгоритма. И в качестве назначения копирования ему передается не весь контейнер, а только итератор (который может оказаться простым указателем). И о том, чтобы этот итератор не вышел за дозволенные пределы, должна позаботиться вызывающая функция.