Присвоение итераторов

253
10 апреля 2017, 07:18

Предположим, у меня есть std::vector<int> vec1 размера n. Также есть RandomAccessIterator begin и end, которые принадлежат другому вектору vec2 такого же размера. Я хочу, чтобы begin и end стали итераторами vec1. Как это правильно сделать?
Грубо говоря, мне нужно присвоить один вектор другому, но у вектора, которому я присваиваю, я знаю только его итераторы.

Answer 1

Если целевой вектор уже содержит нужное количество элементов - то

copy(vec2.begin(),vec2.end(),vec1.begin());

Так все элементы вектора vec2 будут скопированы в вектор vec1 на имеющиеся места. Это то, что вас интересует?

Если элементы из vec2 нужно добавить к vec1, то -

copy(vec2.begin(),vec2.end(),back_inserter(vec1));

У вас какое-то невнятное изложение. Сначала кажется, что вы хотите как-то переприсвоить итераторы, но потом пишете - присвоить один вектор другому.

READ ALSO
Поиск самого длинного слова в строке. С++

Поиск самого длинного слова в строке. С++

Нужно найти самое длинное слово в строкеBAЖНО! Без класса string! проблема в том что код, не работает

370
Шаблонная функция

Шаблонная функция

Есть шаблонная функция:

234
Ошибка при выделении памяти в Си (Access violation)

Ошибка при выделении памяти в Си (Access violation)

Здравствуйте, возникла проблема при выполнении программы

269
Как узнать, нажималась ли кнопка в форме

Как узнать, нажималась ли кнопка в форме

Приветствуюподскажите, есть обычная форма подписки и есть всплывающее окно при уходе с сайта

259