「C/C++」C/C++ 数组初始化的几种方法
✨博客主页 | ||
---|---|---|
何曾参静谧的博客 | ||
📌文章专栏 | ||
「C/C++」C/C++程序设计 | ||
📚全部专栏 | ||
「VS」Visual Studio | 「C/C++」C/C++程序设计 | 「UG/NX」BlockUI集合 |
「Win」Windows程序设计 | 「DSA」数据结构与算法 | 「UG/NX」NX二次开发 |
「QT」QT5程序设计 | 「File」数据文件格式 | 「PK」Parasolid函数说明 |
目录
- 1. 使用全局或静态数组
- 2. 使用`std::fill`
- 3. 使用C++11中的花括号初始化
- 4. 使用`std::vector`
- 5. 使用`memset`
在C++中,有几种快速将数组初始化为0的方法。以下是一些常见的方法:
1. 使用全局或静态数组
全局数组和静态数组在声明时会自动初始化为0。
#include <iostream>
int arr[10]; // 全局数组,自动初始化为0
int main() {
for (int i = 0; i < 10; ++i) {
std::cout << arr[i] << " ";
}
return 0;
}
2. 使用std::fill
如果你使用的是C++标准库,std::fill
是一个很好的选择。你需要包含头文件<algorithm>
。
#include <iostream>
#include <algorithm>
int main() {
int arr[10];
std::fill(arr, arr + 10, 0); // 使用std::fill初始化数组为0
for (int i = 0; i < 10; ++i) {
std::cout << arr[i] << " ";
}
return 0;
}
3. 使用C++11中的花括号初始化
在C++11及以后的版本中,你可以使用花括号初始化来初始化数组。
#include <iostream>
int main() {
int arr[10] = {0}; // 第一个元素初始化为0,其余元素自动初始化为0
for (int i = 0; i < 10; ++i) {
std::cout << arr[i] << " ";
}
return 0;
}
4. 使用std::vector
虽然这不是直接对数组的操作,但使用std::vector
通常更方便,而且也能很容易地初始化为0。
#include <iostream>
#include <vector>
int main() {
std::vector<int> vec(10, 0); // 创建一个大小为10的vector,并初始化为0
for (int i = 0; i < 10; ++i) {
std::cout << vec[i] << " ";
}
return 0;
}
5. 使用memset
对于原生数组,你还可以使用C语言中的memset
函数。这需要包含头文件<cstring>
。
#include <iostream>
#include <cstring>
int main() {
int arr[10];
memset(arr, 0, sizeof(arr)); // 使用memset初始化数组为0
for (int i = 0; i < 10; ++i) {
std::cout << arr[i] << " ";
}
return 0;
}
选择哪种方法取决于你的具体需求和编程风格。对于现代C++编程,使用std::vector
或C++11的花括号初始化通常是更安全和更方便的选择。