导航菜单

C++编程/数组和字符串
课程进度 35% · 第7/18章7/18章 · 标签 1/4
1

数组基础

cpp
1
// 数组声明和初始化
2
int numbers[5];
3
int scores[5] = {90, 85, 88, 92, 78};
4
int values[] = {1, 2, 3, 4, 5};
5
 
6
// 访问数组元素
7
cout << scores[0]; // 第一个元素
8
scores[1] = 95; // 修改元素
9
 
10
// 使用循环遍历数组
11
for (int i = 0; i < 5; i++) {
12
cout << scores[i] << " ";
13
}
14
 
15
// 范围for循环(C++11)
16
for (int score : scores) {
17
cout << score << " ";
18
}
19
 
20
// 数组作为函数参数
21
void printArray(int arr[], int size) {
22
for (int i = 0; i < size; i++) {
23
cout << arr[i] << " ";
24
}
25
}
26
 
27
// 使用指针访问数组
28
int* ptr = scores;
29
cout << *ptr; // 第一个元素
30
cout << *(ptr + 1); // 第二个元素
31
 
32
// 计算数组大小
33
int size = sizeof(scores) / sizeof(scores[0]);

!数组下标从0开始,访问时注意边界检查。数组名实际上是指向第一个元素的指针

2

数组操作详解

cpp
1
// 数组排序
2
#include <algorithm>
3
int arr[] = {5, 2, 8, 1, 9};
4
int n = sizeof(arr) / sizeof(arr[0]);
5
 
6
// 升序排序
7
sort(arr, arr + n);
8
 
9
// 降序排序
10
sort(arr, arr + n, greater<int>());
11
 
12
// 查找元素
13
int key = 8;
14
int* found = find(arr, arr + n, key);
15
 
16
// 数组拷贝
17
int dest[5];
18
copy(arr, arr + n, dest);
19
 
20
// 填充数组
21
fill(arr, arr + n, 0); // 全部置零
22
 
23
// 反转数组
24
reverse(arr, arr + n);

数组使用要点:

  • 固定大小,编译时确定
  • 内存连续存储,访问速度快
  • 作为参数传递时退化为指针
  • 优先使用 vector 代替定长数组