6

std::countが を返しiterator_traits<InputIterator>::difference_type、これがlong int私のプラットフォームのを参照していることに本当に驚きました。

何故ですか?コンテナー内の負の数の要素は意味がありません。

4

1 に答える 1

5

これは実際にはstd::ptrdiff_tであり、符号付き整数でなければなりません。2 つの反復子の差として使用できるため、署名する必要があり、もちろん負になる可能性があります。

于 2013-02-11T12:18:32.347 に答える