38. C++ 범위 기반 for

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 문은 컨테이너의 순회를 간결하게 표현할 수 있는 문법입니다. 참조 및 상수 참조를 적절히 활용함으로써 성능과 코드 가독성을 동시에 확보할 수 있으며, 반복자 사용에 비해 코드 유지보수가 쉬운 장점이 있습니다.

댓글 달기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

error: Content is protected !!
위로 스크롤