标签: c++ types containers c++-standard-library
我很惊讶地看到std::count返回了iterator_traits<InputIterator>::difference_type,而long int又指的是我平台上的{{1}}。
std::count
iterator_traits<InputIterator>::difference_type
long int
为什么?容器中的负计数元素没有任何意义。
答案 0 :(得分:5)
它实际上是std::ptrdiff_t,必须是有符号整数。它必须被签名,因为它可以用作两个迭代器之间的差异,当然这可能是负面的。
std::ptrdiff_t