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
,根据具体情况选择适合的方法来实现初始化操作。