C++中 array所有元素初始化为-1 怎么实现?

在 C++ 中,如果你想将一个数组的所有元素初始化为 -1,有几种方法可以实现。以下是几种常见的方式:

方法一:使用初始化列表(在 C++11 及更新版本中可用)

cpp
#include <iostream> #include <array> using namespace std; int main() { const int SIZE = 10; array<int, SIZE> arr = {}; // 所有元素初始化为 0 // 将所有元素设置为 -1 arr.fill(-1); // 输出数组内容 for (int i = 0; i < SIZE; ++i) { cout << arr[i] << " "; } cout << endl; return 0; }
  • array 是 C++11 引入的标准库模板类,提供了静态大小、存储在连续内存中的数组。
  • arr.fill(-1) 将数组 arr 中的所有元素设置为 -1

方法二:使用普通数组和循环初始化

cpp
#include <iostream> using namespace std; int main() { const int SIZE = 10; int arr[SIZE]; // 循环初始化数组 for (int i = 0; i < SIZE; ++i) { arr[i] = -1; } // 输出数组内容 for (int i = 0; i < SIZE; ++i) { cout << arr[i] << " "; } cout << endl; return 0; }
  • 这种方法使用了普通的 C 风格数组,并通过循环将每个元素初始化为 -1

方法三:使用 std::fill 函数(适用于任何可迭代容器)

cpp
#include <iostream> #include <algorithm> // 包含 std::fill #include <array> using namespace std; int main() { const int SIZE = 10; array<int, SIZE> arr; // 使用 std::fill 将所有元素设置为 -1 fill(arr.begin(), arr.end(), -1); // 输出数组内容 for (int i = 0; i < SIZE; ++i) { cout << arr[i] << " "; } cout << endl; return 0; }
  • std::fill 函数可以用来填充容器中的所有元素,接受容器的起始和结束迭代器以及要填充的值 -1

注意事项:

  • 数组大小和类型:确保数组大小与需求一致,并选择合适的数组类型(如 std::array 或普通数组)。
  • 初始化方法选择:根据实际情况选择最合适的初始化方法,考虑到代码风格、性能和可维护性。

以上方法可以帮助你在 C++ 中将数组所有元素初始化为 -1,根据具体情况选择适合的方法来实现初始化操作。