все) элементов в vector2, при этом удалив их из vector1 - какой оптимальный алгоритм?
я пока что пришел к
итерируюсь от begin() до end() -> в случае перемещения элемента (то есть, удаления с оригинального вектора) делаю --it, в следствии чего ++it после тела цикла вернет его на место
только вопрос, вычисляется ли заново в каждой итерации end() в случае смены размера вектора (чтоб он не вышел на невалидный адрес)
upd: последний вопрос про end() снят, увидел пример на цппрефе
Скопировать элементы в новый вектор, удалить из старого, ВСЁ.
хм, я почему-то был уверен, что в случае удаления внутри цикла итератор будет смещаться на 2 элемента (инкремент + смещение остатка вектора), как оказалось - нет
а нет, все верно если в первой итерации удалить первый элемент - в следующей под итератором будет не 2, а уже 3
под новым-старым имелась в виду копия vector1, чтоб по ней итерироваться, а удалять из оригинала? или я что-то не так понял
Я имел в виду что переместить можно только весь вектор. Целиком
аа то есть, чтоб сделать то, что мне надо - это нужные элементы отправлять в новый вектор, а ненужные во временный и потом мувить временный на место старого? upd: так и сделал, работает
Обсуждают сегодня