标准 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_type
is iterator's difference_type
,它可以是负数,但count
只能返回值 >= 0。为什么difference_type
而不是size_t
例如?