rob*_*bie 0 c++ arrays stl multidimensional-array c++11
我有一个二维std::array
的std::array
s,我想用0填充它。我发现的唯一解决方案是使用指向第一个元素and的指针sizeof
,如下所示:
std::fill(&arr2d[0][0], &arr2d[0][0] + sizeof(arr2d), 0);
Run Code Online (Sandbox Code Playgroud)
尽管它可以工作,但它与我发现的在std::array
没有指针逻辑的情况下填充1D 的其他方法并不一致,例如以下两种:
std::fill(arr1d.begin(), arr1d.end(), 0);
arr1d.fill(0);
Run Code Online (Sandbox Code Playgroud)
我可以遍历每个数组,如下所示:
for (auto& it : arr2d) {
it.fill(0);
}
Run Code Online (Sandbox Code Playgroud)
但是一次填充数组似乎会更有效率。是否有用于2D数组的更清洁的方法,还是我受C风格的指针逻辑困扰?
就您而言,只需分配(或初始化){}
:
using arr2d_t = std::array<std::array<unsigned char, 32>, 64>;
arr2d_t arr2d = {}; // all zeroes
arr2d = {}; //ditto
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
862 次 |
最近记录: |