访问元素
本课属于 Coddy C++ 学习旅程的“逻辑与流程”单元。第 12 课,共 56 课。
现在你已经可以创建向量并向其中添加元素,接下来需要了解如何从向量中获取特定元素。C++ 提供了两种访问单个元素的主要方式:方括号运算符和 .at() 方法。
方括号运算符 [] 的用法和普通数组一样。你要指定想要访问的元素的索引:
std::vector<int> numbers = {10, 20, 30, 40};
int first = numbers[0]; // 获取 10
int third = numbers[2]; // 获取 30.at() 方法提供了另一种访问元素的方式,还有一个重要区别:它会进行边界检查:
int first = numbers.at(0); // 获取 10
int third = numbers.at(2); // 获取 30关键区别在于安全性:如果你尝试访问不存在的索引,[] 可能会导致不可预测的行为,而 .at() 会抛出异常,提醒你发生了错误。用于学习时,这两种方法都很好用,但 .at() 能额外保护你,避免访问向量中的无效位置。
挑战
简单编写一个程序,演示如何通过方括号运算符和 .at() 方法从 vector 中获取指定元素。
将提供以下输入:
- 一个整数
n,表示 vector 中的元素数量 - 接着是
n个整数,用于填充 vector - 一个整数
index1,表示要访问的第一个索引 - 一个整数
index2,表示要访问的第二个索引
你的程序应当:
- 创建一个名为
data的std::vector<int> - 使用
push_back()将输入的n个数字逐个添加到 vector 中 - 使用方括号
[]运算符访问index1处的元素,并将其存储在名为value1的变量中 - 使用
.at()方法访问index2处的元素,并将其存储在名为value2的变量中 - 打印访问到的值及其对应的索引
- 使用基于索引的访问方式,打印 vector 的第一个和最后一个元素
使用以下精确的输出格式:
Element at index [index1]: [value1]
Element at index [index2]: [value2]
First element: [first value]
Last element: [last value]访问最后一个元素时,将 data.size() - 1 用作方括号运算符的索引。
亲手试试
#include <iostream>
#include <vector>
using namespace std;
int main() {
// 读取输入
int n;
cin >> n;
vector<int> data;
// 读取 n 个整数并将它们添加到 vector 中
for (int i = 0; i < n; i++) {
int num;
cin >> num;
data.push_back(num);
}
int index1, index2;
cin >> index1;
cin >> index2;
// TODO:在下方编写你的代码
// 使用 [] 运算符和 .at() 方法访问元素
// 将访问到的值存入 value1 和 value2
// 输出结果
cout << "Element at index " << index1 << ": " << value1 << endl;
cout << "Element at index " << index2 << ": " << value2 << endl;
cout << "First element: " << /* 访问第一个元素 */ << endl;
cout << "Last element: " << /* 使用 data.size() - 1 访问最后一个元素 */ << endl;
return 0;
}这节课包含一个小测验。开始学习即可作答,并记录你的进度。
逻辑与流程中的所有课
自己练习: C++ 在线编译器