重置矢量的二维阵列
Reset 2D array of vectors
我有一个用声明的2D数组
vector<int> array[10][10];
清除阵列中任何数据的最快方法是什么?我试过:
memset(array, 0, sizeof(array));
但这不起作用。
感谢
这是一个二维矢量数组。换句话说,它基本上是一个三维阵列,具有三维动态特性。如果你想创建一个动态的2D阵列,你可以这样做:
vector<vector<int> > array(10, vector<int>(10));
要清除:
array.clear();
array.resize(10, vector<int>(10));
如果你想坚持你的阵列,你可以用一个循环来清除它:
for(unsigned int i = 0; i < 10; i++)
for(unsigned int j = 0; j < 10; j++)
array[i][j].clear();
您需要遍历数组的2D部分,并清除每个向量。最快的方式应该看起来像:
for(unsigned int x = 0; x != 10; ++x) {
for(unsigned int y = 0; y != 10; ++y) {
array[x][y].resize(0);
}
}
相关文章:
- 二维阵列的动态分配
- C2440 使用Shared_ptr创建二维阵列
- 围绕二维阵列做一个圆圈
- 为什么一个二维阵列会导致赛段故障,而另一个则不会导致?
- 二维阵列的名称到底代表什么?
- 返回二维阵列
- 是二维阵列访问/修改时间组
- 如何创建一个具有空值、递减编号系统和.txt文件输入值的二维阵列网格
- 八个皇后二维阵列,带有gotos errror
- C++中的二维阵列
- 使用矢量创建二维阵列
- 编制二维阵列
- 错误:解除分配二维阵列
- 复制二维阵列C++
- 将二维阵列模拟为一维阵列
- 从具有两列的文件中加载二维阵列
- 可调整大小的动态二维阵列的更好解决方案
- 使用二维阵列用C++求解埃拉托色尼筛
- 如何显示非对角线二维阵列元素
- 嵌套阵列或嵌套二维阵列