簡體   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