【问题标题】:Erasing an elemnt from a 3D vector in C++在 C++ 中从 3D 矢量中擦除元素
【发布时间】: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


【解决方案1】:

我猜这样的事情会起作用:

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

然后你用任何你想要的数字替换x、y和z。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-05
    相关资源
    最近更新 更多