В даній статті обговоримо алгоритм std::count з бібліотеки C++ STL.
template <class InputIterator, class T>
typename iterator_traits<InputIterator>::difference_type
count (InputIterator begin, InputIterator end, const T& val) ;
Даний алгоритм повертає кількість присутніх елементів з значенням val у проміжку [begin, end).

Приклади

Приклад #1

Розглянемо простий приклад використання count для визначення кількості певної букви у рядку.
#include <algorithm> /* усі алгоритми включно з find */
#include <iostream> /* об'єкт cout */
#include <string> /* клас string */
using namespace std ; /* пищемо усе без std */

/* головна функція програми */
int main (int argc, char** argv)
{
  /* створюємо тестовий рядок символів 
  ** на якому будемо виконувати досліди */
  string example = "This is example string from www.kytok.org.ua." ;
  /* буква, яку будемо шукати у рядку */
  char s_char = 'w' ;
  
  /* змінна буде містити кількість 
  ** символів s_char у рядку example */
  unsigned int cnt = 0 ;
  
  cnt = count (example.begin (), example.end (), s_char) ;
  
  /* виводимо у термінал повідомлення з кількістю входжень */
  cout << "In string \""
       << example << "\" char '"
       << s_char
       << "' happens " << cnt << " times." << endl ;
  
  return 0 ;
}
Після компілювання і виконання даної програми можна побачити результат: cpp_std_count_sample1-cxx_simple_demo_program_output

Приклад #2

Розглянемо обрахунок кількості елементів у масиві елементів вбудованого типу int. В якості ітераторів виступають вказівники на тип int.
#include <algorithm> /* усі алгоритми включно з find */
#include <iostream> /* об'єкт cout */
#include <string> /* клас string */
using namespace std ; /* пищемо усе без std */

/* головна функція програми */
int main (int argc, char** argv)
{
  /* створюємо піддослідний масив цілих знакових чисел */
  int iArray [] = {1,3,5,7,11,7,5,1,3,1,17,19} ;
  /* визначаємо кількість елементів у масиві iArray */
  int iLen = sizeof(iArray)/sizeof(iArray[0]) ;
  
  /* виконуємо обрахунок кількості 
  ** елементів з значенням 1 у масиві iArray */
  int cnt1 = count (iArray, iArray + iLen, 1) ;
  
  /* виводимо результат у термінал */
  cout << "There are " << cnt1 << " elements with value 1 int int array iArray." << endl ;
  
  return 0 ;
}
Компілювання і виконання даного коду видасть наступний результат: cpp_std_count_sample2-cxx_demo_program_output_search_in_array