c++

您所在的位置:网站首页 二维数组赋值为0怎么办 c++

c++

2024-07-11 12:39| 来源: 网络整理| 查看: 265

我正在使用 vector 的 vector 来模拟二维数组。为了重用这个二维数组,有时我需要将它的所有元素重置为零或某个默认值。我知道我可以做一个简单的一维 vector :

std::fill(v.begin(), v.end(), 0);

如何为 vector 高效地做到这一点?我希望找到一个不使用 for 循环但更类似于某些 memset 的解决方案变种。我也不想招致任何内存分配和释放,因为我的目的是重用现有分配的内存。

请注意,我假设每个 vector 的大小都是固定的并且为我所知:vector v(const_max_size, vector (const_max_size, 0)); .如何重置 v的元素归零?

注意:我的意思是不使用 for loops 是我不想使用 v[i][j] 之类的下标遍历所有 2D 元素来为它们赋值。

最佳答案

I hope to find a solution without using for loops ...

好吧,要么显式循环,要么使用隐式循环。显式循环没有错:

for (auto& sub : v) { std::fill(sub.begin(), sub.end(), 0); }

我想从技术上讲,如果您想避免循环,您可以使用:

std::for_each(v.begin(), v.end(), [](auto& sub) { std::fill(sub.begin(), sub.end(), 0); });

关于c++ - 将 vector 的 vector (二维数组)重置为零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32746386/



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3