Open In App

How to Delete Multiple Elements from a Vector in C++?

Last Updated : 21 Nov, 2024
Comments
Improve
Suggest changes
Like Article
Like
Report

In this article, we will learn how to erase multiple elements from a vector in C++.

The easiest and most efficient method to delete the multiple elements from the vector is by using vector erase() method. Let’s take a look at an example:

C++
#include <bits/stdc++.h>
using namespace std;

int main() {
    vector<int> v = {1, 2, 3, 4, 5};

    // Delete all elements from 1st index
  	// to 3rd index
    v.erase(v.begin() + 1, v.begin() + 4);

    for (auto i : v)
        cout << i << " ";
    return 0;
}

Output
1 5 

Explanation: The vector erase() method removed all element of given range [first, last) which here is from index 1 to 4.

There are also some other methods in C++ to delete the multiple elements from a vector. Some of them are as follows:

Using Loop with Vector erase()

If the elements to be deleted are stored non-contiguously in the vector, then they have to be manually deleted the elements using loop with vector erase().

C++
#include <bits/stdc++.h>
using namespace std;

int main() {
    vector<int> v = {1, 2, 3, 4, 5};

    // Delete the even elements
    for (auto i = v.begin(); i != v.end();) {
        if ((*i) % 2 == 0)
            i = v.erase(i);
        else
            i++;
    }
  
    for (auto i : v)
        cout << i << " ";
    return 0;
}

Output
1 3 5 

Explanation: In the above code, if the elements is even then we delete the element from vector otherwise we increment the iterator.

Using vector clear()

If all the elements are to be deleted, we can use vector clear() method that removes all the elements in one go.

C++
#include <bits/stdc++.h>
using namespace std;

int main() {
    vector<int> v = {1, 2, 3, 4, 5};

    // Remove all elements from vector
    v.clear();

    cout << v.size();
    return 0;
}

Output
0

Next Article
Article Tags :
Practice Tags :

Similar Reads