Пространства имён
Варианты
Действия

count_if

Материал из cppreference.com

Синтаксис:

    #include <algorithm>
    typename iterator_traits<input_iterator>::difference_type
    count_if( input_iterator start, input_iterator end, UnaryPred p );

Функция count_if возвращает количество элементов между start и end, для которых предикат p возвращает истину.

Например, следующий код использует count_if с предикатом, который возвращает истину для числа 3, чтобы посчитать количество элементов массива, равных 3:

   int nums[] = { 0, 1, 2, 3, 4, 5, 9, 3, 13 };
   int start = 0;
   int end = 9;
 
   int target_value = 3;
   int num_items = count_if( nums+start,
                             nums+end,
                             bind2nd(equal_to<int>(), target_value) );
 
   cout << "nums[] contains " << num_items << " items matching " << target_value << endl;

Вывод:

   nums[] contains 2 items matching 3

Тот же результат можно получить, используя boost::bind:

   int num_items = count_if( nums+start,
                             nums+end,
                             boost::bind(equal_to<int>(), target_value, _1) );

count_if можно использовать с контейнерами, такими как векторы:

   int num_items = count_if( nums.begin(),
                             nums.end(),
                             boost::bind(equal_to<int>(), target_value, _1) );


Смотрите также: count