我的问题非常直接,更具体地说,我想从Stroustrup11中引用两行:
T[N]
一个固定大小的内置数组:N个连续的T类型元素;没有size()
或其他成员函数array<T,N>
一个固定大小的数组,由N个T类型的连续元素组成;类似于内置数组,但大多数问题都已解决
那么作者提到的区别是什么呢? std::array<T,N>
解决了哪些问题?
我的问题非常直接,更具体地说,我想从Stroustrup11中引用两行:
T[N]
一个固定大小的内置数组:N个连续的T类型元素;没有size()
或其他成员函数array<T,N>
一个固定大小的数组,由N个T类型的连续元素组成;类似于内置数组,但大多数问题都已解决那么作者提到的区别是什么呢? std::array<T,N>
解决了哪些问题?
std::array<T, N>
不会衰变为指向第一个元素的指针,而T[N]
会。此外,你可以对std::array<T, N>
进行值复制,这是T[N]
所没有的。
std::array
还提供了一些有用的函数,例如字典序比较运算符。N
必须是可编译时求值的常量表达式,因此std::vector<T>
通常是首选。<
, >
, <=
, =>
, ==
, !=
。 - Jarod42std::array
对象可以复制并作为函数参数传递。std::array
对象。
T*
,... - Jarod42