본문 바로가기
C++/참고자료

범위기반(Range-based) for문

by 2744m 2019. 1. 9.

범위기반(Range-based) for문 C++11에서 새로 도입된 문법 중 하나.

 

예제

#include <iostream>
using namespace std;

int main() {
	int arr[8] = { 1,2,3,4,5,6,7,8 };
	
	for (int i = 0; i < 8; i++) {
		cout << arr[i] << ' ';
	}
	
	cout << endl;
	
	return 0;
}

배열의 원소를 출력하는 일반적인 반복문이다.

만약 arr[8]을 arr[21]로 수정하고 배열의 원소를 출력하고자 하면 반복문의 조건을 수정해야한다.

프로젝트 진행시 이러한 과정들이 번거롭고, 실수를 유발할 수도 있다.

이러한 상황들을 범위기반 for문을 사용함으로써 예방할수 있으며, 생산성 또한 높일수 있다.

 

범위기반 for문

예제 1

#include <iostream>
using namespace std;

int main() {
	int arr[8] = { 1,2,3,4,5,6,7,8 };
	
	for (auto n : arr) {
		cout << n << ' ';
	}
	
	cout << endl;
	
	return 0;
}

배열 요소 개수에 맞춰 자동으로 반복한다.

그러므로 조건문이 따로 필요없고 배열 요소의 개수가 변한다해도 별도의 수정없이 바로 사용할 수 있다.

위 예제의 경우 직접적으로 배열의 내용까지는 변경할 수 없기 때문에 참조자를 이용해서 변경한다.

예제2)

#include <iostream>
using namespace std;

int main() {
	int arr[8] = { 1,2,3,4,5,6,7,8 };
	
	for (auto &n : arr) {
		n = 777;
		cout << n << ' ';
	}
	
	cout << endl;
	
	return 0;
}

'C++ > 참고자료' 카테고리의 다른 글

cin.tie()//cout.tie()  (0) 2019.01.31
자동 데이터형 추론 auto  (0) 2019.01.09
memset 함수 주의점  (0) 2018.11.08
[알고리즘] 자주하는 실수 모음  (0) 2018.10.25
OpenCV 마우스 클릭 이벤트  (0) 2018.10.10

댓글