【发布时间】:2015-09-23 17:57:21
【问题描述】:
我正在使用向量的向量来模拟二维数组。为了重用这个二维数组,有时我需要将其所有元素重置为零或某个默认值。我知道我可以做一个简单的一维向量:
std::fill(v.begin(), v.end(), 0);
如何有效地为vector<vector<int>> 做到这一点?我希望找到一个不使用 for 循环但更类似于某些 memset 变体的解决方案。我也不想招致任何内存分配和释放,因为我的意图是重用现有分配的内存。
请注意,我假设每个向量的大小是固定的并且我知道:vector<vector<int>> v(const_max_size, vector<int> (const_max_size, 0));。如何将v的元素重置为零?
注意:我不使用 for 循环的意思是,我不想使用像 v[i][j] 这样的下标来遍历所有 2D 元素来为它们分配价值。
【问题讨论】:
-
内层向量的存储在内存中是不连续的,所以没有办法不遍历外层向量。