首页 > 解决方案 > 如何定义二维数组的向量?

问题描述

如何定义一个包含二维数组的向量。

eg: vector<array[16][16]> vec;// 其中二维数组有字符串元素

这将包含vec ={array_1[16][16],array_2[16][16],array_3[16][16],....};


我努力了:

vector<array<array<string,16>,16>> vec;

但是当我使用它时它不起作用vec.push_back(array);

显示的错误是:

没有匹配的成员函数调用“push_back”

最少的代码:

string arr[16][16];

vector<array<array<string,16>,16>> vec;

vec.push_back(arr);

标签: c++

解决方案


您不应该将变量命名为类型。你在阴影std::array中。您应该重命名变量并使用std::array而不是 C 数组:

#include <array>
#include <string>
#include <vector>

using StrArr2D = std::array<std::array<std::string, 16>, 16>;

int main() {
    StrArr2D arr;
    std::vector<StrArr2D> vec;
    vec.push_back(arr);
}

array如果您避免using namespace std;使用完整的限定名称,则可以保留变量名称。


推荐阅读