繁体   English   中英

重置2D向量数组

[英]Reset 2D array of vectors

我有一个二维数组声明为:

vector<int> array[10][10];

清除阵列中任何数据的最快方法是什么? 我努力了:

memset(array, 0, sizeof(array));

但这不起作用。

谢谢

那是向量的二维数组。 换句话说,它基本上是具有3D动态的3D阵列。 如果要创建动态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);
  }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM