重複の可能性:
C++ 標準アルゴリズム「count」が size_t ではなく ptrdiff_t を返すのはなぜですか?
標準 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