代码之家  ›  专栏  ›  技术社区  ›  choxsword

为什么不允许使用可变长度数组作为向量元素?

c++
  •  4
  • choxsword  · 技术社区  · 6 年前

    例如:

    #include<vector>
    using namespace std;
    int main()
    {
       vector<int[]> vec;//serious compiler error
       vector<int[2]> vec={{1,2}};//error:array must be initialized with a brace-enclosed initializer
    }
    

    1 回复  |  直到 6 年前
        1
  •  11
  •   StoryTeller - Unslander Monica    6 年前

    它不是可变长度数组,那些在C++中不存在。它是一个没有大小说明符的数组,是一个不完整的类型,不能满足大多数(所有?)向量操作的要求。

    第二次尝试复制c数组(列表初始化总是进行复制),这也不受支持。

    std::vector<std::array<int, 2>> .