C++11 이상의 표준에서는 범위 기반 for 루프를 사용할 수 있습니다. 이 루프는 컨테이너의 각 요소를 간편하게 순회할 수 있도록 도와주는 구문입니다.
범위 기반 for 루프의 기본 구조는 다음과 같습니다:
for (변수의 형식 변수명 : 컨테이너) {
// 반복 실행할 코드
}
여기서 `컨테이너`는 배열, 벡터, 리스트 등의 반복 가능한 컨테이너 타입이 될 수 있습니다.
예를 들어, 배열, 벡터, 리스트를 범위 기반 for 루프로 순회하는 간단한 예제를 보여드리겠습니다.
1. 배열(Array):
#include <iostream>
int main() {
int arr[] = {1, 2, 3, 4, 5};
for (int element : arr) {
std::cout << element << ' ';
}
return 0;
}
이 코드는 배열 `arr`의 각 요소를 출력합니다. 출력 결과는 `1 2 3 4 5`가 됩니다.
2. 벡터(Vector):
#include <iostream>
#include <vector>
int main() {
std::vector<int> vec = {1, 2, 3, 4, 5};
for (int element : vec) {
std::cout << element << ' ';
}
return 0;
}
이 코드는 벡터 `vec`의 각 요소를 출력합니다. 출력 결과도 `1 2 3 4 5`가 됩니다.
3. 리스트(List):
#include <iostream>
#include <list>
int main() {
std::list<int> myList = {1, 2, 3, 4, 5};
for (int element : myList) {
std::cout << element << ' ';
}
return 0;
}
이 코드는 리스트 `myList`의 각 요소를 출력합니다. 출력 결과 역시 `1 2 3 4 5`가 됩니다.
이렇게 범위 기반 for 루프는 다양한 종류의 반복 가능한 컨테이너에 대해 일관된 방식으로 사용할 수 있습니다.
더욱 쉬운 이해
간단한 형태를 예제로 더 말씀드리 자면
for (int idx : alphabet_indices) {
cout << idx << ' ';
}
- `int idx`는 배열 `alphabet_indices`의 각 요소를 담을 변수입니다.
- `: alphabet_indices`는 순회하고자 하는 배열 또는 컨테이너입니다.
- 루프 내부의 코드(`cout << idx << ' ';`)는 각 요소에 대해 실행됩니다.
따라서 이 코드는 `alphabet_indices` 배열의 각 요소를 `idx`에 대입하고 출력하는 역할을 합니다. 이 구문을 사용하면 반복 변수의 선언과 배열 인덱스에 대한 접근을 더 간결하게 작성할 수 있습니다.