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
- Iterate over the elements of given vector using index.
- If the condition is satisfied, delete the current element.
ADVERTISEMENT
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
#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
#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.