C++ 如何定义二维数组的向量?

C++ 如何定义二维数组的向量?,c++,C++,如何定义包含二维数组的向量 例如:vec向量//其中二维数组具有字符串元素 其中将包含vec={array_1[16][16]、array_2[16][16]、array_3[16][16]、…} 我试过: vector<array<array<string,16>,16>> vec; 您不应该将变量命名为类型。您正在跟踪std::array。您应该重命名变量,并使用std::array而不是C-array: #include <array>

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

例如:
vec向量//其中二维数组具有字符串元素

其中将包含
vec={array_1[16][16]、array_2[16][16]、array_3[16][16]、…}


我试过:

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

您不应该将变量命名为类型。您正在跟踪std::array
。您应该重命名变量,并使用
std::array
而不是C-array:

#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);
}
#包括
#包括
#包括
使用StrArr2D=std::array;
int main(){
StrArr2D-arr;
std::vec;
矢量推回(arr);
}

如果避免使用命名空间std,则可以保留变量名
数组
并使用全名。

什么是
不起作用。
是什么意思?没有编译?错误消息是什么?请提供一个,您的代码std::vector v;让我也添加错误并更新问题您不能像类型一样命名变量。您正在跟踪std::array
。您应该重命名它并使用
std::array
而不是C-array:
string-array[16][16]=>
阵列arr你的
字符串数组[16][16]
不是
std::array
当我尝试上述方法时,我得到了一个未定义模板“std::array”的as错误
隐式实例化
错误解决了为什么不只是使用
arr
作为变量名?就像您对
vector
变量使用
vec
一样。那么您就不必担心
使用名称空间std
的问题了。@RemyLebeau前面的变量名是
array
。我想展示不同的方式。但是现在,在OP更改了问题中的代码之后,在您的示例中调用数组
array
@ThomasSablik是没有意义的,我将使用
声明添加
,以使代码更早阅读,例如:
使用StrArr2D=std::array,16>;StrArr2D-arr;std::vector vec
#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);
}