Вы хотите удалить элемент из середины вектора, поэтому вы просто перезаписываете его последним элементом (с индексом size()-1
) - поскольку последний элемент, таким образом, становится избыточным, мы можем pop_back()
его.Наконец, мы получаем желаемый результат - размер вектора уменьшается на единицу, а старое значение vect[3]
исчезает.
Обратите внимание, что это не сохраняет порядок элементов в векторе, ноэто относительно эффективно - стирание с середины вектора может потребовать большого объема копирования памяти, так как все элементы после удаляемого элемента должны быть сдвинуты на единицу, чтобы учесть пробел (помните: std::vector
сохраняетэлементы в постоянном хранении).Стирание с конца почти ничего не стоит.