1. 기존 C 스타일 배열 반복의 문제점
- C 스타일 배열에서는 반복문을 사용할 때, 배열의 크기를 따로 관리하거나 지정해야 했습니다.
- 아래 예시는 배열의 요소를 모두 출력하는 C 스타일 반복문입니다:
- 문제점:
- 배열의 크기를 명시적으로 계산해야 하므로 코드가 복잡해짐.
- 반복 횟수를 잘못 계산하거나 초과 접근하는 경우 버그가 발생할 위험이 있음.
int arr[] = {1, 2, 3, 4, 5};
int size = sizeof(arr) / sizeof(arr[0]); // 배열 크기를 직접 계산
for (int i = 0; i < size; ++i) {
std::cout << arr[i] << " ";
}
2. C++ 범위 기반 for문
C++11부터 도입된 범위 기반 for문은 배열이나 컨테이너의 요소를 자동으로 순회할 수 있는 간단하고 직관적인 방법을 제공합니다.
기본 문법
for (요소_타입 변수명 : 컨테이너_또는_배열) {
// 반복문 블록
}
예제: 배열 출력
#include <iostream>
int main() {
int arr[] = {1, 2, 3, 4, 5};
for (int num : arr) { // 배열의 각 요소를 num에 복사
std::cout << num << " ";
}
return 0;
}
출력:
1 2 3 4 5
3. 범위 기반 for문의 장점
3.1 코드의 간결성
- 반복문을 작성할 때 배열의 크기 계산이나 반복 조건 설정이 필요하지 않습니다.
- 컨테이너의 요소 개수에 따라 자동으로 루프가 설정됩니다.
3.2 유지보수성 향상
- 배열 크기나 컨테이너가 변경되어도 반복문 자체를 수정할 필요가 없습니다.
3.3 참조로 접근하여 값 변경 가능
- 배열 요소를 참조형으로 접근하면 원본 값을 직접 변경할 수 있습니다
for (int& num : arr) { // 참조로 접근
num *= 2; // 배열의 각 요소를 두 배로 변경
}
3.4 읽기 전용(const 참조)
- 값 변경이 필요 없는 경우, const 참조를 사용해 안전성을 높일 수 있습니다:
for (const int& num : arr) { // 읽기 전용 참조
std::cout << num << " ";
}
'프로그래밍 > C++' 카테고리의 다른 글
8. 함수 템플릿 (0) | 2025.01.03 |
---|---|
6. 디폴트 매개변수(파라미터) (1) | 2025.01.02 |
4.cpp 참조형 (1) | 2025.01.02 |
3.C++의 메모리 동적할당 (0) | 2025.01.02 |
2. cpp의 변수, 그리고 auto (0) | 2025.01.01 |