Menu
Coddy logo textTech

for ループによる反復処理

CoddyのC++ジャーニー「論理と制御フロー」セクションの一部。レッスン 14/56。

個々の要素にアクセスし、vector のサイズを確認する方法がわかったので、traditional for loop を使ってすべての要素を体系的に処理する方法を学びましょう。このアプローチでは、.size() メソッドとインデックスベースのアクセスを組み合わせて、各要素を順番に確認します。

traditional for loop は、0 から始まり vector の size に達するまで増加するインデックス変数を使用します:

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

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

この例では、loop 条件 i < names.size() によって vector の範囲を超えないようにし、一方で names[i] は現在のインデックスを使って各要素にアクセスします。loop は各名前をそれぞれ別の行に出力します。

このパターンは、データのコレクションを処理するための基本です。インデックス変数 i を使うと、どの要素を操作しているかを正確に制御できるため、各要素の位置を知る必要がある場合や、反復処理中に要素を変更したい場合に便利です。

loop が終了した後、inames.size() と等しくなることに注意してください。この場合は 3 です。これは、条件 i < names.size() が false になるとすぐに loop が停止するためです。

challenge icon

チャレンジ

簡単

traditional for loopを使用して、product namesのvectorをiterateし、number付きリスト形式で表示するプログラムをCreateしてください。

次の入力が与えられます:

  • productのnumberを表す整数 n
  • 続いて、product namesを表す n 個のstring

プログラムでは、次の処理を行ってください:

  1. productsという名前の std::vector<std::string>をCreateする
  2. push_back()を使用して、n個のproduct namesをeach vectorにaddする
  3. index variableを使用するtraditional for loopでvectorをiterateする
  4. loop内で、loop conditionに.size() methodを使用する
  5. square bracket [] operatorを使用して、各elementにindexでアクセスする
  6. 指定されたformatで、各productをそのposition number(1から開始)とともにprintする

次のexact output formatを使用してください:

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

for loopはindex 0から開始し、conditionとしてi < products.size()を使用し、各iterationでiをincrementしてください。printする際は、indexに1をaddして、1から開始するposition numbersを表示してください。

自分で試してみよう

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

int main() {
    // 商品の数を読み取る
    int n;
    cin >> n;
    
    // 商品名を格納するベクターを作成する
    vector<string> products;
    
    // 商品名を読み取り、ベクターに追加する
    for (int i = 0; i < n; i++) {
        string product;
        cin >> product;
        products.push_back(product);
    }
    
    // TODO: 以下にコードを書いてください
    // 従来のforループを使用してベクターを反復処理する
    // そして各商品をその位置番号とともに出力する
    
    return 0;
}
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

論理と制御フローのすべてのレッスン

自分で練習してみよう: C++オンラインコンパイラ