基本上,我有一个向量:
A[256*256][x][y]
其中x在程序的每次迭代中从0到50,然后再返回0。 y值可以每次不同,这意味着对于每个[256 * 256] [y]元素,向量y的大小可以不同,但仍小于256。
因此,为了澄清我的问题,这就是我所拥有的:
vector<vector<vector<int>>> A;
for(int i =0;i<256*256;i++){
A.push_back(vector<vector<int>>());
A[i].push_back(vector<int>());
A[i][0].push_back(SOME_VALUE);
}
向向量中添加元素...
A.clear();
接着我从顶部再次执行相同的操作。
何时以及如何为向量保留空间。 如果我理解正确,如果我在更改大小时使用reserve,我将节省很多时间?
预留我的向量可以达到最大大小的正面/负面是什么,这将是[256 * 256] [50] [256]
在某些情况下。
顺便说一句。 我知道不同的矩阵模板和Boost,但已决定在此问题上使用向量...
编辑: 我还想知道如何在多维数组中使用reserve函数。 如果我只在两个维度上保留向量,那么如果我超过第三个维度的容量,它会复制整个向量吗?