【发布时间】:2021-03-23 08:53:04
【问题描述】:
最近,我了解了C++。特别是我了解了memset函数。但我不知道如何在特定行为 2d array 设置值
例子:
int dp[10][10];
// I want to set all values for dp[0] by using memset
// I can do it, by using For loop, like
for (int i = 0; i < 10; i++)
dp[0][i] = 1000;
我试过了
memset(dp[0], 1000, sizeof dp[0]);
但效果不好。
所以我想知道是否有任何方法可以像我希望的那样使用 memset?谢谢:D
【问题讨论】:
-
你为什么要使用
memset?启用优化后,编译器会将循环和memset转换为同一个程序集。您也可以使用std::array< std::array<int, 10>, 10>代替 C 数组来简化操作。 -
您不能使用
memset()来处理比单字节值更大的块。您所拥有的已经是用不同于0的值初始化该数组的最快方法。