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。愚蠢的老猫。但是关系运算符也可用
    ==
    =