Iterator and Algorithm Patterns
Count If Threshold
std::count_if counts values that satisfy a predicate without writing the counting loop by hand.
Count If Threshold
count_if_threshold.cpp
#include <algorithm>
#include <iostream>
#include <vector>
int main() {
std::vector<int> scores{72, 85, 91, 64};
int minimum = ;
int passing = static_cast<int>(std::count_if(scores.begin(), scores.end(),
[minimum](int score) {
return score >= minimum;
}));
std::cout << "minimum=" << minimum << std::endl;
std::cout << "passing=" << passing << std::endl;
return 0;
}
#include <algorithm>
#include <iostream>
#include <vector>
int main() {
std::vector<int> scores{72, 85, 91, 64};
int minimum = ;
int passing = static_cast<int>(std::count_if(scores.begin(), scores.end(),
[minimum](int score) {
return score >= minimum;
}));
std::cout << "minimum=" << minimum << std::endl;
std::cout << "passing=" << passing << std::endl;
return 0;
}
#include <algorithm>
#include <iostream>
#include <vector>
int main() {
std::vector<int> scores{72, 85, 91, 64};
int minimum = ;
int passing = static_cast<int>(std::count_if(scores.begin(), scores.end(),
[minimum](int score) {
return score >= minimum;
}));
std::cout << "minimum=" << minimum << std::endl;
std::cout << "passing=" << passing << std::endl;
return 0;
}
predicate
A predicate is a function or lambda that returns true or false for each value.
count_if
`std::count_if` applies a predicate over a range and returns the number of matches.