C++/Modern C++(11, 14, 17, 20)
[C++11] Range-based for loops
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)