본문 바로가기

BE/C++

[C++][Vector] 범위 기반 반복문

인트로

안녕하세요. 오늘은 범위기반 for문에 대해서 알아보겠습니다. 범위기반 for문은 C++11에서 적용되었다고 합니다. 

(ISO가 승인한 2011년 8월 12일에 승인한 C++ 프로그래밍 언어의 최신판)

기존의 복잡한 for문에서 문법이 확장되어 간결한 형태로 사용할 수 있습니다.

 

(구 버전) 기존의 형태

기존 for문은 아래와 같이 시작인덱스, 종료조건, 증감연산을 주어주어야했습니다.

1) 인덱스 기반 기존 접근형태

vector<int> v;

for (int i=0; i<v.size();i++){

	// example : v[i].push_back(1);

}

 

2) iterator 사용한 기존형태

vector<int> v;

for (auto iter = v.begin(); iter != v.end(); iter++) {
		
    cout << *iter << endl;

}

 

3) 기존 벡터 접근해서 값 변경하는 for문

vector<int> v;

for (auto iter = v.begin(); iter!= v.end(); iter++) {

	*iter += 2020;
	//code
}

 

(NEW 버전) 범위기반 for문 형태

범위기반 for문은 시작과 종료조건을 주어주지 않아도 알아서 배열의 값에 기반해 반복문을 돌립니다.

※ 범위 기반 for문에서는 배열의 요소의 값을 변경할 수 없습니다.

(그러나, reference를 이용하면 변경 가능하다고 합니다.)

기본 형태

for(데이터타입 element : 데이터리스트)
{
            //code
}

 

범위 기반 for문에서 Vector배열의 값 접근

vector<int> v;

//벡터에 데이터 삽입

v.push_back(1);
v.push_back(2);

for (auto i : v) {

	cout << i << endl;
    
}

 

이상으로 C++ 범위 기반 반복문에 대해 포스팅을 마치겠습니다.

감사합니다 :D