Возможный дубликат:
Почему стандартный алгоритм С++ "count" возвращает ptrdiff_t вместо size_t?
В стандартном С++ существует алгоритм std::count
/std::count_if
.
template<class InputIterator, class T>
typename iterator_traits<InputIterator>::difference_type
count(InputIterator first, InputIterator last, const T& value);
template<class InputIterator, class Predicate>
typename iterator_traits<InputIterator>::difference_type
count_if(InputIterator first, InputIterator last, Predicate pred);
Эффекты: возвращает число итераторов я в диапазоне [первый, последний], для которого следующие соответствующие условия сохраняются: * я == value, pred (* i)!= false.
difference_type
- iterator difference_type
, который может быть отрицательным, но count
может возвращать только значение >= 0. Почему difference_type
, а не size_t
например?