跳转至

数组

数组是数据结构的中基础的一部分,可以用于储存多个相同类型的元素。

数组的基础知识

定义数组,初始化数组

数组的标注定义如下

type arrayName[arraySize];

我们可以定义一个存储5个整数的数组

int numbers[5]; // 定义一个存储5个整数的数组
数组也可以在定义时同时进行初始化

int numbers[5] = {1, 2, 3, 4, 5}; // 定义并初始化

数组的访问,修改

通过索引访问数组中的元素。数组索引从 0 开始。

int firstNumber = numbers[0]; // 获取第一个元素,值为1
可以通过索引来修改特定的元素。

numbers[2] = 10; // 修改第三个元素为10

数组的大小获取

我们可以通过sizeof函数来获得数组的大小

int arr[] = {1,2,3,4,5};
int size = sizeof(arr) / sizeof(arr[0])

多维数组

C++ 支持多维数组,通常用于表示矩阵。

int matrix[3][3]; // 定义一个 3x3 的二维数组

数组的越界

访问数组元素时要注意不要越界,否则会导致未定义行为。

int numbers[5] = {1, 2, 3, 4, 5};
int outOfBound = numbers[10]; // 未定义行为,越界访问

动态数组

使用指针和new关键字可以创建动态数组。

int* numbers = new int[5]; // 动态分配5个整数的数组
for (int i = 0; i < 5; ++i) {
    numbers[i] = i + 1;
}
delete[] numbers; // 释放动态内存

数组的中奇妙算法

循环遍历

通常使用for来访问和处理数组每一个元素

#include "iostream"
using namespace std;

for (int i = 0; i < size; i++) {
    cout << numbers[i] << " "; // 输出数组中的元素
}

查找算法

#include "iostream"
using namespace std;

int target = 3;
bool found = false;
for (int i = 0; i < 5; ++i) {
    if (numbers[i] == target) {
        found = true;
        break;
    }
}
if (found) {
    cout << "Found!" << std::endl;
} else {
    cout << "Not found!" << std::endl;
}

排序算法

#include "iostream"
#include "algorithm"
using namespace std;

sort(numbers, numbers + 5); // 对数组进行升序排序