vector<int>
同时包含vector<int>::size_type
和vector<int>::difference_type
。两者似乎都不必存在,因为size_type
保证能够保存与vector<int>
在给定系统上可能包含的最大元素数一样大的值,并且在任何有效使用中都是如此case,difference_type
必须小于或等于元素的最大数量,即顺序容器中两个元素之间的距离绝不会大于顺序容器可以包含的最大元素数。有人可以提供一个例子,说明两者之间有用的区别吗?
答案 0 :(得分:30)
container::difference_type
存在,因为对于某些序列容器,您可以减去迭代器。减法可能导致负数。您无法使用container::size_type
作为结果,因为它是未签名的,因此您永远不会有负值。所以我们有container::difference_type
这是一个有符号整数,它是容器迭代器的difference_type
。