使用矢量创建二维阵列
Creating 2D arrary using vector
我一直在尝试创建一个向量的2D数组。下面是我正在做的一个例子。
struct TILE {
int a;
};
TILE temp_tile;
std::vector<TILE> temp_vec_tile;
std::vector<std::vector<TILE>> tile;
for (int x = 0; x < 10; x++) {
for (int y = 0; y < 10; y++) {
temp_tile.a = x;
temp_vec_tile.push_back(temp_tile);
}
tile.push_back(temp_vec_tile);
}
// Why does this not work?
int x = tile[3][5].a;
有人能纠正我吗?告诉我为什么它不起作用。
您没有清除行之间的temp_vec_tile,所以它只会继续增长。。。
所以不是你的行向量都有10个元素,第一个元素有10个,接下来是20个,然后是30个,等等。前10个元素总是第一行的元素。因此,索引不会让您返回所期望的元素。
不是推回到温度向量<>中,然后将其推到外部向量<>中,您可以保留向量的大小<>s在循环之外,并直接存储在内部循环中。
什么东西不起作用?由于创建了一个不断增长的temp_vec_tile
,您可能会得到一些意外的值。您可能希望在将其插入外部向量后截断它,例如,使用clear()
。
相关文章:
- 二维阵列的动态分配
- C2440 使用Shared_ptr创建二维阵列
- 围绕二维阵列做一个圆圈
- 为什么一个二维阵列会导致赛段故障,而另一个则不会导致?
- 二维阵列的名称到底代表什么?
- 返回二维阵列
- 是二维阵列访问/修改时间组
- 如何创建一个具有空值、递减编号系统和.txt文件输入值的二维阵列网格
- 八个皇后二维阵列,带有gotos errror
- C++中的二维阵列
- 使用矢量创建二维阵列
- 编制二维阵列
- 错误:解除分配二维阵列
- 复制二维阵列C++
- 将二维阵列模拟为一维阵列
- 从具有两列的文件中加载二维阵列
- 可调整大小的动态二维阵列的更好解决方案
- 使用二维阵列用C++求解埃拉托色尼筛
- 如何显示非对角线二维阵列元素
- 嵌套阵列或嵌套二维阵列