In this C++ tutorial, you shall learn how to remove elements in a given vector based on a condition, with example programs.

Remove elements from Vector based on a condition in C++

To remove elements in a vector based on a condition

  1. Iterate over the elements of given vector using index.
    1. If the condition is satisfied, delete the current element.

Examples

1. Remove negative numbers from vector

In the following program, we take an integer vector in v, and remove the negative elements from it.

We use For loop to iterate over the elements of the vector, and If statement to compare the elements.

main.cpp

</>
Copy
#include <iostream>
#include <vector>
using namespace std;

int main() {
   //initialize a vector
   vector<int> v { 4, 0, -3, 2, -8, 1, -7 };
   
   for (unsigned int i = 1 ; i < v.size(); ++i) {
      if ( v.at(i) < 0 ) {
         //remove element if negative
         v.erase(v.begin() + i);
         --i;
      }
   }

   //print vector elements
   for(auto& element: v) {
      cout << element << "  ";
   }
}

Output

4  0  2  1  

2. Remove empty strings from vector

In the following program, we take a string vector in v, and remove the empty strings from it.

main.cpp

</>
Copy
#include <iostream>
#include <vector>
using namespace std;

int main() {
   //initialize a vector
   vector<string> v { "apple", "", "banana", "", "", "" };
   
   for (unsigned int i = 1 ; i < v.size(); ++i) {
      if ( v.at(i) == "" ) {
         //remove element if empty string
         v.erase(v.begin() + i);
         --i;
      }
   }

   //print vector elements
   for(auto& element: v) {
      cout << element << endl;
   }
}

Output

apple
banana

Conclusion

In this C++ Tutorial, we learned how to remove elements from a given vector, based on a condition.