상세 컨텐츠

본문 제목

[C++11] Range-based for loops

C++/Modern C++(11, 14, 17, 20)

by deulee 2023. 8. 24. 17:31

본문

"range-based for loops"은 C++11로부터 도입된 컨테이너의 각 요소를 반복하기 위한 간편한 구문을 제공한다.

 

이를 사용하면 모든 요소에 접근하면서 반복 작업을 수행할 수 있다. 이는 컨테이너의 크기나 반복 횟수에 대한 신경을 쓰지 않게 해주어서 사소한 실수로 인한 오류를 줄여준다.

 

다음은 range-based for loop의 구문 및 사용 방법이다.

for (element_type element : container) {
    // 반복 작업을 수행하는 코드
}
  • `element_type`: 컨테이너의 각 요소의 데이터 형식을 나타낸다.
  • `container`: 반복하고자 하는 컨테이너 변수 또는 컨테이너 객체이다.

다음 예시를 살펴보자.

#include <iostream>
#include <vector>

int main() {
    std::vector<int> numbers = {1, 2, 3, 4, 5};

    for (int num : numbers) {
        std::cout << num << " ";
    }

    return 0;
}

이는, 정수를 저장하는 벡터를 반복하면서 요소를 출력하는 경우를 살펴보았다.

 

위의 경우 `int num`으로 선언 된 것을 알 수 있으며 안의 요소를 직접적으로 참조하는 것이 아니라 '값을 복사한 것'이다.

 

만약 컨테이너 안의 값을 참조하여 요소를 변경하고자 한다면 `&`로 선언하면 된다.

for (int& x : arr)

 

관련글 더보기