用C++从三维矢量中删除元素

Erasing an elemnt from a 3D vector in C++

本文关键字:删除 元素 C++ 三维      更新时间:2023-10-16

所以,我有一个向量,包含包含整数的向量,本质上充当一个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矢量做外推,但我被卡住了。谢谢

我想这样的东西会起作用:

matrix[x][y].erase(matrix[x][y].begin() + z);

然后用任意数字替换xyz