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);
}