首页 >后端开发 >C++ >如何将 C 数组的所有元素初始化为特定的非零值?

如何将 C 数组的所有元素初始化为特定的非零值?

Susan Sarandon
Susan Sarandon原创
2024-12-28 22:03:11220浏览

How to Initialize All Elements of a C   Array to a Specific Non-Zero Value?

在 C 中将数组的元素初始化为默认值

问题是由 C 中使用以下语法的数组初始化引起的:

int array[100] = {-1};

此初始化将第一个元素设置为 -1,并将其余元素保留为 0,这不是期望的行为。为了解决这个问题,需要考虑以下几点:

语法解释

语法 int array[100] = {-1};本质上是说,“将第一个元素设置为 -1,其余元素设置为 0。”当数组声明中省略元素时,默认情况下它们会自动初始化为 0。

将所有元素设置为非零值

将所有元素初始化为像 -1 这样的非零值,不能仅仅依赖默认的省略值初始化。相反,可以使用以下方法:

  1. std::fill_n: 使用 中的 std::fill_n 函数库:
std::fill_n(array, 100, -1);
  1. 循环: 在标准 C 中,需要创建一个循环来为每个元素赋值:
for (int i = 0; i < 100; i++) {
  array[i] = -1;
}

速度比较

与循环相比,默认初始化的速度没有显着差异。两种方法都按顺序初始化元素,因此时间复杂度保持相同。然而,与手动循环相比,使用 std::fill_n 可以节省一些指令,使其在大多数情况下稍微快一些。

以上是如何将 C 数组的所有元素初始化为特定的非零值?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn