C++数组初始化方法有哪些?
文章标签
navicatmysqllinux
一、静态初始化
在定义数组时,直接给出数组元素的初始化值。例如:
int arr1[5] = {1, 2, 3, 4, 5};
// 等同于
int arr2[] = {1, 2, 3, 4, 5};
如果未给出的数组元素将被自动初始化为 0。
如果数组元素是字符类型,可以使用双引号来初始化数组:
char str[] = "Hello World!";
// 等同于
char str[] = {'H', 'e', 'l', 'l', 'o', ' ', 'W', 'o', 'r', 'l', 'd', '!', '\0'};
二、动态初始化
在数组定义后,逐一给元素赋值。例如:
int arr[5]; arr[0] = 1; arr[1] = 2; arr[2] = 3; arr[3] = 4; arr[4] = 5;
这种方式需要逐一对每个元素进行初始化,可以在循环中使用。
三、部分元素初始化
在定义数组时,可以只给出一部分元素的初始化值,其他元素将自动初始化为 0。例如:
int arr[5] = {1, 2};
// 等同于
int arr[5] = {1, 2, 0, 0, 0};
也可以部分引用初始化值数组。例如:
int arr1[5] = {1, 2, 3};
int arr2[5] = {0, 0};
arr2[1] = arr1[1];
arr2[2] = arr1[2];
四、动态分配内存初始化
使用 new 操作符为数组动态分配内存,并初始化元素。例如:
int* arr = new int[5]{1, 2, 3, 4, 5};
这种方式在动态创建数组时非常有用。
五、使用标准库算法初始化
在 C++11 中,标准库为我们提供了 <algorithm> 头文件,里面有一些初始化算法可以使用。例如:
#include <algorithm>
#include <iostream>
#include <vector>
int main() {
std::vector<int> vec(5);
std::iota(vec.begin(), vec.end(), 1);
for (int i : vec) {
std::cout << i << " ";
}
}
// 输出:1 2 3 4 5
这里我们使用了 std::iota() 算法,它会将指定范围内的元素按顺序初始化。
版权声明
本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。
code前端网

