Menu
CoddyTech

访问元素

本课属于 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() 能额外保护你,避免访问向量中的无效位置。

challenge icon

挑战

简单

编写一个程序,演示如何通过方括号运算符和 .at() 方法从 vector 中获取指定元素。

将提供以下输入:

  • 一个整数 n,表示 vector 中的元素数量
  • 接着是 n 个整数,用于填充 vector
  • 一个整数 index1,表示要访问的第一个索引
  • 一个整数 index2,表示要访问的第二个索引

你的程序应当:

  1. 创建一个名为 data 的 std::vector<int>
  2. 使用 push_back() 将输入的 n 个数字逐个添加到 vector 中
  3. 使用方括号 [] 运算符访问 index1 处的元素,并将其存储在名为 value1 的变量中
  4. 使用 .at() 方法访问 index2 处的元素,并将其存储在名为 value2 的变量中
  5. 打印访问到的值及其对应的索引
  6. 使用基于索引的访问方式,打印 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;
}
quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

逻辑与流程中的所有课

自己练习: C++ 在线编译器