为什么std :: count返回有符号整数?

时间:2013-02-11 12:12:53

标签: c++ types containers c++-standard-library

我很惊讶地看到std::count返回了iterator_traits<InputIterator>::difference_type,而long int又指的是我平台上的{{1}}。

为什么?容器中的负计数元素没有任何意义。

1 个答案:

答案 0 :(得分:5)

它实际上是std::ptrdiff_t,必须是有符号整数。它必须被签名,因为它可以用作两个迭代器之间的差异,当然这可能是负面的。