【发布时间】:2014-09-29 06:29:06
【问题描述】:
假设我有:unsigned char my2darray[A][B];
是否可以使用std::fill 将二维数组的所有值设置为非0值?
我知道可以使用向量,但这是性能关键代码,我无法承受动态分配。不幸的是,不允许使用 C++11。
代码中当前使用的是memset(my2darray, 0x12, sizeof(my2darray));,但如果可能的话,我想将所有memset 替换为std::fill,因为数组的类型将来可能会成为一个类。
感谢任何类型的答案,而不仅仅是字符。
【问题讨论】:
-
std::array怎么样? -
@BaummitAugen not pre-c++11
-
请注意,当前 memset 将使用
2 071 690 107填充数组(当 my2darray 为int时) -
@Erbureth 是的,更有理由不使用它!!!实际上我的代码中的数组是字节。我只是将其更改为 int 作为示例。我将其编辑为字符。
标签: c++