我的问题很简单,但更具体地说,我想引用Stroustrup11中的2行。
T[N]
固定大小的内置数组:N个连续的T类元素;
没有size()
或其他成员函数array<T,N>
T类型的N个连续元素的固定大小数组;
像内置数组一样,但解决了大部分问题那么作者提到的区别是什么?以及std::array<T,N>
解决了哪些问题?
答案 0 :(得分:4)
主要区别在于std::array<T, N>
没有衰减到指向第一个元素的指针,T[N]
可以,和 std::array<T, N>
的值副本。
std::array
还提供了一些有用的功能,例如词典比较运算符。
但是因为N
必须是编译时可评估的常量表达式,std::vector<T>
通常是首选。
答案 1 :(得分:2)
与内置数组不同,std::array
个对象可以作为函数参数进行复制和传递。
重载的运算符和成员函数可以提供额外的调试和运行时检查,并消除大量代码重复。标准成员集简化了通用代码中std::array
个对象的使用。