For 루프로 반복하기
Coddy C++ 여정의 로직과 흐름 섹션에 포함된 레슨 — 56개 중 14번째.
이제 개별 요소에 접근하고 벡터의 크기를 확인하는 방법을 알았으니, 전통적인 for 루프를 사용하여 모든 요소를 체계적으로 처리하는 방법을 배워보겠습니다. 이 방식은 .size() 메서드와 인덱스 기반 접근을 결합하여 각 요소를 순서대로 방문합니다.
전통적인 for 루프는 0에서 시작하여 벡터의 크기에 도달할 때까지 증가하는 인덱스 변수를 사용합니다:
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()은 벡터의 범위를 벗어나지 않도록 보장하며, names[i]는 현재 인덱스를 사용하여 각 요소에 접근합니다. 루프는 각 이름을 별도의 줄에 출력합니다.
이 패턴은 데이터 컬렉션을 처리하는 데 필수적입니다. 인덱스 변수 i는 작업 중인 요소에 대한 정밀한 제어를 제공하며, 각 요소의 위치를 알아야 하거나 반복 중에 요소를 수정하려는 경우에 유용합니다.
챌린지
쉬움전통적인 for 루프를 사용하여 제품 이름이 담긴 벡터를 순회하고, 이를 번호가 매겨진 리스트 형식으로 표시하는 프로그램을 작성하세요.
다음과 같은 입력이 제공됩니다:
- 제품의 수를 나타내는 정수
n - 그 다음
n개의 제품 이름을 나타내는 문자열들
프로그램은 다음을 수행해야 합니다:
products라는 이름의std::vector<std::string>를 생성합니다.push_back()을 사용하여n개의 각 제품 이름을 벡터에 추가합니다.- 인덱스 변수를 사용하는 전통적인 for 루프를 사용하여 벡터를 순회합니다.
- 루프에서 루프 조건으로
.size()메서드를 사용합니다. - 대괄호
[]연산자를 사용하여 인덱스로 각 요소에 접근합니다. - 각 제품을 지정된 형식에 맞춰 위치 번호(1부터 시작)와 함께 출력합니다.
다음과 같은 정확한 출력 형식을 사용하세요:
Product 1: [first product name]
Product 2: [second product name]
Product 3: [third product name]
...for 루프는 인덱스 0에서 시작해야 하며, 조건으로 i < products.size()를 사용하고, 매 반복마다 i를 증가시켜야 합니다. 출력할 때는 인덱스에 1을 더하여 1부터 시작하는 위치 번호를 표시하세요.
치트 시트
.size()와 인덱스 기반 접근을 결합하여 전통적인 for 루프를 사용해 벡터를 순회할 수 있습니다:
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()는 벡터의 범위를 벗어나지 않도록 보장하며, names[i]는 현재 인덱스를 사용하여 각 요소에 접근합니다. 인덱스 변수는 작업 중인 요소에 대해 정밀한 제어를 가능하게 하고 각 요소의 위치를 파악할 수 있게 해줍니다.
직접 해보기
#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;
}이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.