Jas*_*ain 1 c++ size-t stdarray
std::array 模板参数是template < class T, size_t N > class array;其中 N 代表数组中元素的数量。
我的疑问是为什么是类型std::size_t?std::size_t 不是以字节为单位的对象/指针大小的别名。std::size_t
为什么用它来表示std::array这里的元素数量?
该类型std::size_t被定义为可以表示最大可能对象的大小(例如N字节)的数字类型。
最大的对象可能是一个数组,因此具有最多可能对象的数组是一个由N 个组成 char的数组。
你应该尽可能地遵守这个约定,否则你可能会引入错误:
std::size_t常用于数组索引和循环计数。使用其他类型(例如unsigned int,用于数组索引的程序)可能会在索引超出UINT_MAX或依赖 32 位模算术 ( cppref )时失败,例如 64 位系统
我们本来可以用 astd::index_t代替,但它会与 相同std::size_t,所以这是毫无意义的。