模块 5 · 第 1 课(共 2)课程中的11/18~12 min
模块课程(1/2)
数组和向量
在 C++ 中,管理数据集合主要通过两种工具完成:旧式数组(C 样式数组)和向量 (std::vector)。了解静态内存和动态内存之间的区别是编写高效代码的基础。
1. 静态数组(C 风格数组)
数组是存储在连续内存位置的相同类型元素的集合。静态数组的大小必须在编译时已知,并且以后不能更改:
C++
int grades[5] = {18, 22, 25, 28, 30}; // Array of 5 integers主要特点:
- 固定大小:您无法在运行时添加或删除元素。
- 堆栈分配:分配和释放速度非常快。
- 访问:通过索引运算符
[]完成(例如,第一个元素为grades[0])。
2. 动态向量 (std::vector)
C++ 标准模板库 (STL) 提供 std::vector 类,它表示动态数组。要使用它,您必须包含 <vector> 标头:
C++
#include <vector>
std::vector<int> numbers; // Creates an empty vector of integers常见操作:
- 附加到末尾:
.push_back(value)方法在向量的末尾插入一个元素,如果需要,会自动重新分配内存。 - Size:
.size()方法返回向量中当前元素的数量。 - 安全访问:除了
[]运算符之外,您还可以使用.at(index)方法(例如numbers.at(0)),如果索引越界,该方法将引发异常。
C++
std::vector<int> scores = {90, 85};
scores.push_back(95); // scores now contains {90, 85, 95}
std::cout << scores.size(); // Prints 3自己尝试一下
锻炼#cpp.m5.l1.e1
尝试:0加载中...
声明一个名为 number 的整数 std::vector。使用 .push_back() 方法在其中添加值 10、20 和 30,然后使用numbers.size() 打印其大小。
正在加载编辑器...
显示提示
使用“std::vector<int>numbers;”声明向量,使用“.push_back(value)”插入三个数字,并使用“std::cout <<numbers.size();”打印它。
3 次尝试后可用的解决方案
锻炼#cpp.m5.l1.e2
尝试:0加载中...
main 中定义了一个包含 5 个元素的 Grades 数组。编写一个for循环来计算数组中所有元素的总和,将其存储在变量sum中,并使用std::cout打印它。
正在加载编辑器...
显示提示
使用“for (int i = 0; i < 5; ++i)”循环,并使用“sum +=grades[i];”对循环内的每个元素求和。
3 次尝试后可用的解决方案
Quiz#cpp.m5.l1.q1
准备好在 C++ 中将元素附加到 std::vector 末尾的正确方法是什么?
C++
std::vector<int> numbers; // come aggiungere il valore 50?