我声明了一个二维数组:
vector<int> array[10][10];
清除数组中任何数据的最快方法是什么?我努力了:
memset(array, 0, sizeof(array));
但这行不通。
谢谢
我声明了一个二维数组:
vector<int> array[10][10];
清除数组中任何数据的最快方法是什么?我努力了:
memset(array, 0, sizeof(array));
但这行不通。
谢谢
这是一个二维向量数组。换句话说,它基本上是一个具有 3 维动态的 3D 数组。如果你想创建一个动态二维数组,你可以这样做:
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();
您需要遍历数组的二维部分,并清除每个向量。最快的方式应该是这样的:
for(unsigned int x = 0; x != 10; ++x) {
for(unsigned int y = 0; y != 10; ++y) {
array[x][y].resize(0);
}
}