文档说明,
std::vector
的size_type
通常为size_t
,这是合理的,因为实现可以选择使用不同的类型。但是,为什么在std::array
中size_type=size_t
呢?特别是在小型µC
上经常使用std::array
,让实现有些自由可能更好。这是文档错误吗?
std::array<T,N>::size_type
是size_t
。 - Daniel LangrN
同样被指定为size_t
有关,以及因为std::array
只是简单地包装了一个本地的 C++ 数组(尽管规范没有要求这样做,按我的阅读),如果size_type
可以是除了size_t
之外的其他类型,那么就会使事情变得复杂,并暗示着索引运算符在将索引参数用作本地数组的偏移量之前对其进行了一些处理。但除此之外,我不知道其他原因 :) 而在vector<T>
中不适用这些限制。 - Dai