Функция count_if
Функция count_if подсчитывает количество
элементов в диапазоне, для которых предикат
возвращает true. Первым и вторым параметром
функция принимает итераторы начала и конца
диапазона, а третьим - унарный предикат, которому
будет передан каждый элемент диапазона. Функция
возвращает целое число - количество элементов,
удовлетворяющих условию.
Синтаксис
count_if(first, last, pred)
Пример
Давайте подсчитаем количество чётных чисел в векторе:
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main()
{
vector<int> v = {1, 2, 3, 4, 5};
int res = count_if(v.begin(), v.end(), [](int n) {
return n % 2 == 0;
});
cout << res << endl;
return 0;
}
Результат выполнения кода:
2
Пример
Давайте подсчитаем количество чисел, больших трёх, в векторе:
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main()
{
vector<int> v = {1, 2, 3, 4, 5};
int res = count_if(v.begin(), v.end(), [](int n) {
return n > 3;
});
cout << res << endl;
return 0;
}
Результат выполнения кода:
2
Пример
Давайте подсчитаем количество строк, начинающихся
с символа 'a', в векторе строк:
#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
using namespace std;
int main()
{
vector<string> v = {"abcde", "12345", "apple", "banana", "avocado"};
int res = count_if(v.begin(), v.end(), [](const string& s) {
return !s.empty() && s[0] == 'a';
});
cout << res << endl;
return 0;
}
Результат выполнения кода:
3
Смотрите также
-
функция
count,
которая подсчитывает количество элементов, равных заданному значению -
функция
find_if,
которая ищет первый элемент, удовлетворяющий условию -
функция
all_of,
которая проверяет, что все элементы удовлетворяют условию -
функция
any_of,
которая проверяет, что хотя бы один элемент удовлетворяет условию