【发布时间】:2020-02-29 01:29:27
【问题描述】:
所以,我有一个向量,其中包含包含整数的向量,本质上充当 3D 数组。我已经这样声明了:
vector<vector<vector<int>>> maxtrix;
...
int size = 16;
vector<int> intial;
inital.assign(size, 0); // fill a vector with 0s depending on size
vector<vector<int>> secondInitial;
secondInitial.assign(size, initial); // so now the 2d array holds the inital empty vector
matrix.assign(size,secondInitial); // an array of the 2d arrays -> 3d array.
因此我只能通过
访问矩阵matrix[x][y][z];
但我需要能够擦除以下元素:
initial.erase(0)
但是我已经尝试过无法阻止:
matrix.erase([a][b][c]);
我不确定如何访问向量的“最深”级别来删除元素而不声明它。
我试图搜索如何为 2D 向量执行此操作并推断出 3D 向量,但我被卡住了。谢谢。
【问题讨论】:
-
您需要调用
erase以获得内部向量之一。例如:matrix[x][y].erase(matrix[x][y].begin() + z, matrix[x][y].begin() + z + 1);
标签: c++ arrays vector element erase