remove nth element from vector c++ code example

Example 1: remove element by index from vector c++

// Deletes the second element (vec[1])
vec.erase(vec.begin() + 1);

// Deletes the second through third elements (vec[1], vec[2])
vec.erase(vec.begin() + 1, vec.begin() + 3);

Example 2: vector erase specific element

vector.erase( vector.begin() + 3 ); // Deleting the fourth element

Example 3: removing element from vector while iterating c++

#include <iostream>
#include <vector>
#include <algorithm>
 
int main()
{
    std::vector<int> v = { 1, 2, 3, 4, 5, 6 };
 
    auto it = v.begin();
    while (it != v.end())
    {
        // specify condition for removing element; in this case remove odd numbers
        if (*it & 1) {
            // erase() invalidates the iterator, use returned iterator
            it = v.erase(it);
        }
        // Notice that iterator is incremented only on the else part (why?)
        else {
            ++it;
        }
    }
 
    for (int const &i: v) {
        std::cout << i << ' ';
    }
 
    return 0;
}

Example 4: vector erase specific element

template <typename T>
void remove(std::vector<T>& vec, size_t pos)
{
    std::vector<T>::iterator it = vec.begin();
    std::advance(it, pos);
    vec.erase(it);
}

Tags:

Cpp Example