РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
209 of 815 menu

Метод erase

Метод erase класса vector удаляет один элемент или диапазон элементов из вектора. При удалении элементов вектор уменьшается в размере, а все элементы после удалённых сдвигаются влево. Первый вариант метода принимает итератор на удаляемый элемент, а второй - два итератора, задающих диапазон [first, last) для удаления.

Метод возвращает итератор, указывающий на элемент, который следовал за последним удалённым элементом. Если удалялся последний элемент, возвращается итератор end.

Синтаксис

vec.erase(iterator pos) vec.erase(iterator first, iterator last)

Пример

Давайте удалим один элемент из вектора по итератору, указывающему на третий элемент (имеющий индекс 2):

#include <iostream> #include <vector> using namespace std; int main() { vector<int> vec = {1, 2, 3, 4, 5}; vec.erase(vec.begin() + 2); for (int el : vec) { cout << el << " "; } cout << endl; return 0; }

Результат выполнения кода:

1 2 4 5

Пример

Давайте удалим диапазон элементов из вектора, начиная со второго элемента и до четвёртого (не включая его):

#include <iostream> #include <vector> using namespace std; int main() { vector<int> vec = {1, 2, 3, 4, 5}; vec.erase(vec.begin() + 1, vec.begin() + 3); for (int el : vec) { cout << el << " "; } cout << endl; return 0; }

Результат выполнения кода:

1 4 5

Пример

Давайте удалим последний элемент вектора:

#include <iostream> #include <vector> using namespace std; int main() { vector<int> vec = {1, 2, 3, 4, 5}; vec.erase(vec.end() - 1); for (int el : vec) { cout << el << " "; } cout << endl; return 0; }

Результат выполнения кода:

1 2 3 4

Пример

Давайте удалим все элементы вектора, используя диапазон от начала до конца:

#include <iostream> #include <vector> using namespace std; int main() { vector<int> vec = {1, 2, 3, 4, 5}; vec.erase(vec.begin(), vec.end()); cout << "Size: " << vec.size() << endl; return 0; }

Результат выполнения кода:

"Size: 0"

Пример

Давайте удалим элемент из вектора строк и используем возвращаемый итератор для вывода следующего элемента:

#include <iostream> #include <vector> #include <string> using namespace std; int main() { vector<string> vec = {"a", "b", "c", "d", "e"}; auto it = vec.erase(vec.begin() + 1); cout << "Next: " << *it << endl; for (string el : vec) { cout << el << " "; } cout << endl; return 0; }

Результат выполнения кода:

"Next: c" "a c d e"

Смотрите также

  • класс vector,
    который представляет динамический массив
  • метод insert,
    который вставляет элементы в вектор
  • метод clear,
    который удаляет все элементы вектора
  • метод pop_back,
    который удаляет последний элемент вектора
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить