C++ T[N]和std::array之间的差异<;T、 N>;
我的问题很简单,但更具体地说,我想引用其中的两行C++ T[N]和std::array之间的差异<;T、 N>;,c++,arrays,c++11,C++,Arrays,C++11,我的问题很简单,但更具体地说,我想引用其中的两行 T[N]固定大小的内置数组:N个T类型的连续元素; 没有size()或其他成员函数 arrayT型N个相邻元素的固定大小数组; 与内置阵列类似,但大多数问题都已解决 那么,作者提到的区别是什么?对于std::array,解决了哪些问题?主要区别在于std::array不会衰减为指向第一个元素的指针,t[N]将,和您可以获取std::array的值副本 std::array还提供了一些有用的函数,如字典比较运算符 但由于N必须是编译时可计算的常量表
T[N]
固定大小的内置数组:N个T类型的连续元素;
没有size()
或其他成员函数array
T型N个相邻元素的固定大小数组;
与内置阵列类似,但大多数问题都已解决那么,作者提到的区别是什么?对于
std::array
,解决了哪些问题?主要区别在于std::array
不会衰减为指向第一个元素的指针,t[N]
将,和您可以获取std::array
的值副本
std::array
还提供了一些有用的函数,如字典比较运算符
但由于
N
必须是编译时可计算的常量表达式,std::vector
通常是首选。与内置数组不同,std::array
对象可以复制并作为函数参数传递
重载运算符和成员函数可能提供额外的调试和运行时检查,并消除大量代码重复。一组标准成员简化了泛型代码中
std::array
对象的使用。复制,不衰减到T*
,…所以在这个主题上。@Quentin:Oops。愚蠢的老猫。但是关系运算符也可用
,
,==
,=代码>。