Menu
CoddyTech

用 for 循环遍历

本课属于 Coddy C++ 学习旅程的“逻辑与流程”单元。第 14 课,共 56 课。

现在你已经知道如何访问单个元素并检查向量的大小,接下来我们来学习如何使用传统的 for 循环按顺序处理每个元素。这种方法结合了 .size() 方法和基于索引的访问方式,依次遍历每个元素。

传统的 for 循环使用一个从 0 开始递增的索引变量,直到它达到 vector 的大小:

std::vector<std::string> names = {"Alice", "Bob", "Charlie"};

for (int i = 0; i < names.size(); i++) {
    std::cout << names[i] << std::endl;
}

在这个示例中,循环条件 i < names.size() 确保我们不会超出 vector 的边界,而 names[i] 使用当前索引访问每个元素。循环会将每个名字单独打印在一行。

这种模式是处理数据集合的基础。索引变量 i 能让你精确控制当前处理的元素,因此在你需要知道每个元素的位置,或想在迭代过程中修改元素时,它很有用。

请注意,循环结束后,i 等于 names.size(),在本例中是 3,因为当条件 i < names.size() 变为 false 时,循环就会停止。

challenge icon

挑战

简单

创建一个程序,使用传统 for 循环遍历产品名称向量,并以带编号的列表形式显示它们。

将提供以下输入:

  • 一个整数 n,表示产品数量
  • 然后是 n 个表示产品名称的字符串

你的程序应该:

  1. 创建一个名为 products 的 std::vector<std::string>
  2. 使用 push_back() 将这 n 个产品名称逐个添加到向量中
  3. 使用带索引变量的传统 for 循环遍历向量
  4. 在循环中,使用 .size() 方法作为循环条件
  5. 使用方括号 [] 运算符按索引访问每个元素
  6. 按照指定格式打印每个产品及其位置编号(从 1 开始)

使用以下准确的输出格式:

Product 1: [first product name]
Product 2: [second product name]
Product 3: [third product name]
...

for 循环应该从索引 0 开始,使用 i < products.size() 作为条件,并在每次迭代中递增 i。打印时,将索引加 1,以显示从 1 开始的位置编号。

亲手试试

#include <iostream>
#include <vector>
#include <string>
using namespace std;

int main() {
    // 读取商品数量
    int n;
    cin >> n;
    
    // 创建一个 vector,存储商品名称
    vector<string> products;
    
    // 读取商品名称,并将它们添加到 vector 中
    for (int i = 0; i < n; i++) {
        string product;
        cin >> product;
        products.push_back(product);
    }
    
    // TODO: 在下方编写你的代码
    // 使用传统的 for 循环遍历 vector
    // 并输出每个商品及其位置编号
    
    return 0;
}
quiz icon自我测试

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

逻辑与流程中的所有课

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