보통 배열 자료구조에 접근할 때 for문을 자주 사용하는데, 이는 배열의 요소가 선언할 때 확정되기 때문이다.
하지만 만일 배열 요소의 개수를 변경하게 된다면? 당연히 for문도 수정해야하는 번거러움이 생긴다.
이를 해결하기위해 범위 기반 for문을 사용하면 수정할 필요성이 사라진다.
for(auto 요소변수 : 배열이름)
반복 구문;
#include<iostream>
using namespace std;
int main(int argc, char *argv[])
{
int arr[5] = {10, 20, 30, 40, 50};
// 일반적인 반복문
for(int i = 0; i < 5; ++i)
cout << arr[i] << ' ';
cout << endl;
// 범위 기반 반복문
// 각 요소의 값을 n에 복사
for(auto n : arr)
cout << n << ' ';
cout << endl;
//n은 각 요소에 대한 참조
for(auto &n : arr)
cout << n << ' ';
cout << endl;
return 0;
}
실행결과
9번행과 16번 행은 같은 의미이다. (값을 읽기만 했을 뿐 쓰지는 않았기 때문에)
만일 배열 요소의 개수가 5개에서 10개로 변경된다면 9번행의 조건식은 반드시 수정해야한다. 하지만 16번행은 그럴필요가 없다.
즉, 코드를 잘못 입력해서 오류가 발생할 가능성이 대폭 줄어든다.
'Develop > C++' 카테고리의 다른 글
[C ++] 식별자 검색 순서 (0) | 2023.02.02 |
---|---|
[C ++] 템플릿(Template) (1) | 2023.02.02 |
[C ++] 다중 정의 (Overloading) (0) | 2023.02.02 |
[C ++] new와 delete연산자 (0) | 2023.02.02 |
[C ++] auto (0) | 2023.02.02 |
댓글