目录
- 🌕静态数组
- 🌕动态数组(使用new和delete)
- 🌙利用指针创建数组 int* arr = new int[5];
- 🌙创建“指针的指针类型”的数组
- 🌕使用标准模板库(STL)中的vector
🌕静态数组
静态数组在声明时其大小就确定了,并且之后不能改变。
#include <iostream>
using namespace std; int main() { // 创建一个包含5个整数的静态数组 int arr[5] = {1, 2, 3, 4, 5}; // 访问并打印数组元素 for(int i = 0; i < 5; i++) { cout << arr[i] << " "; } cout << endl; return 0;
}
如果你没有初始化数组中的所有元素,那么那些未初始化的元素会被自动初始化为0(对于内置类型如int)。
🌕动态数组(使用new和delete)
C++也支持动态数组,其大小在运行时确定,并使用new关键字分配内存,使用delete关键字释放内存。
🌙利用指针创建数组 int* arr = new int[5];
#include <iostream>
using namespace std; int main() { // 创建一个指针(地址)arr,它代表这 new int[5]这5个int空间的首地址。int* arr = new int[5]; // 初始化数组 for(int i = 0; i < 5; i++) { arr[i] = i + 1; } // 访问并打印数组元素 for(int i = 0; i < 5; i++) { cout << arr[i] << " "; } cout << endl; // 释放动态数组占用的内存 delete[] arr; return 0;
}
注意,对于动态数组,你需要手动管理内存(分配和释放)。使用delete[]来释放动态分配的数组,而不是单个的delete。
🌙创建“指针的指针类型”的数组
int类型
int** array = new int*[5]
自己定义的Worker类
Worker** newSpace = new Worker*[5];
🌕使用标准模板库(STL)中的vector
C++标准模板库(STL)提供了一个更灵活且易于使用的数组替代品——vector。vector可以动态地增长和缩小,并且不需要手动管理内存。
#include <iostream>
#include <vector>
using namespace std; int main() { // 创建一个vector,初始时没有元素 vector<int> vec; // 向vector中添加元素 for(int i = 1; i <= 5; i++) { vec.push_back(i); } // 访问并打印vector中的元素 for(int i = 0; i < vec.size(); i++) { cout << vec[i] << " "; } cout << endl; return 0;
}
vector是C++中管理动态数组的首选方式,因为它提供了比原始数组更多的功能和灵活性,同时隐藏了内存管理的复杂性。