c++ - 如何定义二维数组的向量?
问题描述
如何定义一个包含二维数组的向量。
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);
解决方案
您不应该将变量命名为类型。你在阴影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;
使用完整的限定名称,则可以保留变量名称。
推荐阅读
- excel - 保护某些范围不被编辑和删除,但允许使用分组
- android - 试图让我的应用程序设备所有者在模拟器中
- elasticsearch - ElasticSearch 映射问题 - 嵌套到非嵌套
- batch-file - 我想在 BatchScript ToGether 中运行两个命令
- r - 为什么带有“余弦”方法的 textstat_simil() 返回 NA
- unix - 在 Unix 中的子文件夹中使用 du -hs * 命令的差异
- asp.net-core - 将数据从自定义验证属性传递到页面/视图
- firebase - Flutter google授权响应类型OAuth 2
- c++ - 如何将 unique_ptr 传递给另一个类以仅使用指针的方法(不更改所有权)?
- c++ - c ++打印/读取文本文件-十六进制值和4个整数并读取它们并相应地分离数据