How to erase an element from a vector by index in C++

1 Answer

0 votes
#include <iostream>
#include <vector>
  
void printVector(std::vector<int> const &v) {
    for (auto const &n: v) {
        std::cout << n << " ";
    }
}
   
void eraseByIndex(std::vector<int> &v, int i) {
    auto element = v.cbegin() + i;

    v.erase(element);
}
 
int main()
{
    std::vector<int> v = { 5, 2, 7, 1, 9, 3, 6, 4 };
    int i = 3;
 
    printVector(v);
     
    eraseByIndex(v, i);
 
    std::cout << std::endl;
    printVector(v);
    
    eraseByIndex(v, 4);

    std::cout << std::endl;
    printVector(v);
 
    return 0;
}
 
   
   
   
   
/*
run:
   
5 2 7 1 9 3 6 4 
5 2 7 9 3 6 4 
5 2 7 9 6 4 
    
*/

 



answered Apr 10, 2020 by avibootz
...