How to Filter Items of a Vector based on a Condition in C++ - Step by Step Examples
How to Filter Items of a Vector based on a Condition in C++ ?
Answer
To filter items of a vector based on a condition in C++, you can use the `std::remove_if` algorithm provided by the algorithm header in combination with the erase-remove idiom.
✐ Examples
1 Filter Items Greater Than a Threshold
In this example,
- First, you define a vector containing the elements you want to filter.
- Next, you specify the condition for filtering, such as greater than a threshold, using a lambda function or a functor.
- Then, you use the `std::remove_if` algorithm with the specified condition to move the elements that satisfy the condition to the end of the vector.
- Finally, you erase the elements from the end of the vector to remove them.
C++ Program
#include <iostream>
#include <vector>
#include <algorithm>
int main() {
// Define a vector containing elements
std::vector<int> vec = {1, 5, 10, 15, 20};
// Specify the threshold for filtering
int threshold = 10;
// Define a lambda function to filter elements greater than the threshold
auto condition = [threshold](int x) { return x > threshold; };
// Use std::remove_if algorithm with the condition
vec.erase(std::remove_if(vec.begin(), vec.end(), condition), vec.end());
// Print the filtered vector
for (int i : vec) {
std::cout << i << " ";
}
std::cout << std::endl;
return 0;
}
Output
15 20
2 Filter Items Meeting a Condition
In this example,
- Define a vector containing elements.
- Specify the condition for filtering using a lambda function or a functor.
- Use the `std::remove_if` algorithm with the specified condition to move the elements meeting the condition to the end of the vector.
- Erase the elements from the end of the vector to remove them.
C++ Program
#include <iostream>
#include <vector>
#include <algorithm>
int main() {
// Define a vector containing elements
std::vector<int> vec = {1, 5, 10, 15, 20};
// Specify the condition for filtering
auto condition = [](int x) { return x % 2 == 0; }; // Select even numbers
// Use std::remove_if algorithm with the condition
vec.erase(std::remove_if(vec.begin(), vec.end(), condition), vec.end());
// Print the filtered vector
for (int i : vec) {
std::cout << i << " ";
}
std::cout << std::endl;
return 0;
}
Output
1 5 15
Summary
In this tutorial, we learned How to Filter Items of a Vector based on a Condition in C++ language with well detailed examples.
More C++ Vectors Tutorials
- How to create an Empty Vector in C++ ?
- How to Initialize a Vector in C++ ?
- How to Get Length of a Vector in C++ ?
- How to create a Vector of Size N in C++ ?
- How to create a Vector of Numbers from 1 to N in C++ ?
- How to create a Vector of Integers in C++ ?
- How to create a Vector of Strings in C++ ?
- How to create a Vector of Empty Vectors in C++ ?
- How to Access Items in a Vector in C++ ?
- How to get Item in a Vector at a Specific Index in C++ ?
- How to get First Item in a Vector in C++ ?
- How to get Last Item in a Vector in C++ ?
- How to Iterate Over a Vector in C++ ?
- How to Iterate Over a Vector with Index in C++ ?
- How to Iterate Over a Vector in Reverse Order in C++ ?
- How to check if a Vector is Empty in C++ ?
- How to check if a Vector is Not Empty in C++ ?
- How to get Sub Vector in C++ ?
- How to get the Index of Specified Item in a Vector in C++ ?
- How to check if a Specific Item is present in the Vector in C++ ?
- How to check if a Vector contains all the items of Another Vector in C++ ?
- How to count the Number of Occurrences of Specific Item in the Vector in C++ ?
- How to find the Item with Maximum Number of Occurrences in a Vector in C++ ?
- How to find the Item with Minimum Number of Occurrences in a Vector in C++ ?
- How to Sort a Vector in C++ ?
- How to Sort a Vector in Ascending Order in C++ ?
- How to Sort a Vector in Descending Order in C++ ?
- How to create a Two Dimensional Vector in C++ ?
- How to Iterate over a Two Dimensional Vector in C++ ?
- How to create a Three Dimensional Vector in C++ ?
- How to Copy a Vector in C++ ?
- How to Split a Vector in C++ ?
- How to Join Vectors in C++ ?
- How to Append an Item to a Vector in C++ ?
- How to Insert an Item at Specific Index in a Vector in C++ ?
- How to Append a Vector to another Vector in C++ ?
- How to Concatenate Two Vectors in C++ ?
- How to check if Two Vectors are Equal in C++ ?
- How to check if Two Vectors have Same Items (Regardless of Order) in C++ ?
- How to Convert a Vector of Integers to a Vector of Strings in C++ ?
- How to Convert a Vector of Strings to a Vector of Integers in C++ ?
- How to Convert a Vector of Floats to a Vector of Strings in C++ ?
- How to Convert a Vector of Strings to a Vector of Floats in C++ ?
- How to Reverse a Vector in C++ ?
- How to Shuffle a Vector in C++ ?
- How to Slice a Vector in C++ ?
- How to get First N Items from a Vector in C++ ?
- How to get Last N Items from a Vector in C++ ?
- How to Rotate Items in a Vector in C++ ?
- How to Filter Items of a Vector based on a Condition in C++ ?
- How to Remove Duplicates in a Vector in C++ ?
- How to Remove Item at a Specific Index from a Vector in C++ ?
- How to Remove Specific Item from a Vector in C++ ?
- How to Remove Items from Vector based on a Condition in C++ ?
- How to Sort a String Vector in Dictionary Order in C++ ?
- How to Concatenate Strings in Vector in C++ ?
- How to create a Vector of Vectors in C++ ?