标准 C++ 中有算法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);
效果:返回 [first,last) 范围内满足以下相应条件的迭代器 i 的数量:*i == value, pred(*i) != false。
difference_typeis iterator's difference_type,它可以是负数,但count只能返回值 >= 0。为什么difference_type而不是size_t例如?