Найти в Дзене
Dull

C++ Как удалить элемент из vector

В C++ для удаления элемента из std::vector можно использовать несколько методов. Вот некоторые из них:

  1. Использование метода erase:
    Метод erase позволяет удалить элемент по индексу или диапазону индексов.

#include <iostream>

#include <vector>

int main() {

std::vector<int> vec = {1, 2, 3, 4, 5};

// Удаляем элемент по индексу 2 (т.е. элемент со значением 3)

vec.erase(vec.begin() + 2);

// Выводим содержимое вектора

for (int num : vec) {

std::cout << num << " ";

}

return 0;

}

Удаление всех элементов с определённым значением:
Можно использовать алгоритм std::remove в сочетании с erase для удаления всех элементов с заданным значением.

#include <iostream>

#include <vector>

#include <algorithm> // для std::remove

int main() {

std::vector<int> vec = {1, 2, 3, 4, 3, 5};

// Удаляем все элементы со значением 3

vec.erase(std::remove(vec.begin(), vec.end(), 3), vec.end());

// Выводим содержимое вектора

for (int num : vec) {

std::cout << num << " ";

}

return 0;

}

Удаление элемента по условию:
Если нужно удалить элемент по какому-то условию, можно использовать std::remove_if.

#include <iostream>

#include <vector>

#include <algorithm> // для std::remove_if

int main() {

std::vector<int> vec = {1, 2, 3, 4, 5};

// Удаляем все четные числа

vec.erase(std::remove_if(vec.begin(), vec.end(), [](int x) { return x % 2 == 0; }), vec.end());

// Выводим содержимое вектора

for (int num : vec) {

std::cout << num << " ";

}

return 0;

}

Каждый из этих методов позволяет эффективно управлять содержимым вектора, в зависимости от ваших нужд.