在 C 中将数组的元素初始化为默认值
问题是由 C 中使用以下语法的数组初始化引起的:
int array[100] = {-1};
此初始化将第一个元素设置为 -1,并将其余元素保留为 0,这不是期望的行为。为了解决这个问题,需要考虑以下几点:
语法解释
语法 int array[100] = {-1};本质上是说,“将第一个元素设置为 -1,其余元素设置为 0。”当数组声明中省略元素时,默认情况下它们会自动初始化为 0。
将所有元素设置为非零值
将所有元素初始化为像 -1 这样的非零值,不能仅仅依赖默认的省略值初始化。相反,可以使用以下方法:
std::fill_n(array, 100, -1);
for (int i = 0; i < 100; i++) { array[i] = -1; }
速度比较
与循环相比,默认初始化的速度没有显着差异。两种方法都按顺序初始化元素,因此时间复杂度保持相同。然而,与手动循环相比,使用 std::fill_n 可以节省一些指令,使其在大多数情况下稍微快一些。
以上是如何将 C 数组的所有元素初始化为特定的非零值?的详细内容。更多信息请关注PHP中文网其他相关文章!