C++ 범위 기반 for(Range based for)
1. 개요
1.1 문서 개요
이 문서는 C++11부터 도입된 범위 기반 for
문(range-based for
)에 대해 설명합니다. 이 구조는 컨테이너 또는 배열에 포함된 원소를 하나씩 순회할 때 사용됩니다. 반복자(iterator)를 직접 사용하지 않아도 되므로 코드가 간결해집니다.
2. 내용
2.1 기본 문법 구조
2.1.1 문법 형식
for (선언 변수 : 컨테이너) {
// 각 요소에 대한 작업
}
2.1.2 예제
std::vector<int> numbers = {1, 2, 3, 4};
for (auto num : numbers) {
std::cout << num << std::endl;
}
2.2 참조와 const 사용
복사 비용을 줄이거나 원본을 수정하기 위해 참조(&
) 또는 상수 참조(const &
)를 사용할 수 있습니다.
for (const auto& item : container) {
// 복사 없이 읽기 전용 순회
}
2.3 수정 가능한 참조
컨테이너 내부 값을 수정하려면 일반 참조를 사용합니다.
for (auto& x : vec) {
x *= 2;
}
2.4 배열에도 사용 가능
범위 기반 for
는 C 스타일 배열에도 사용 가능합니다.
int arr[] = {10, 20, 30};
for (auto a : arr) {
std::cout << a << std::endl;
}
3. 마무리
범위 기반 for
문은 컨테이너의 순회를 간결하게 표현할 수 있는 문법입니다. 참조 및 상수 참조를 적절히 활용함으로써 성능과 코드 가독성을 동시에 확보할 수 있으며, 반복자 사용에 비해 코드 유지보수가 쉬운 장점이 있습니다.