개발/C++

[C++] 범위기반 for문

Majangnan 2024. 2. 28. 17:45
728x90

범위기반 for 문

  • 시작점과 끝점을 알려주지 않아도 알아서 처음부터 끝까지 순회를 하는 반복문 (C++ 11부터 사용 가능)
  • 배열과 vector 등의 컨테이너의 원소를 순차적으로 접근

 

 

사용 예시

for(데이터 타입 name : 데이터 리스트)

{

     loop statement

}

 

데이터 타입 : 데이터 리스트에서 부터 하나씩 받아올 데이터의 타입

name : 변수 이름

데이터 리스트 : 배열, vector와 같은 순회가 가능한 데이터 리스트.

 

vector<int> vec {1, 2, 3, 4};

// forfor(int i = 0; i < vec.size(); i++)
{
	int num = vec[i];
	cout << num << endl;
}

// 범위기반 for문
for(int num : vec)
{
	cout << num << endl;
}

 

 

// auto 자료형을 쓸 경우
for (auto num : vec)
{
	cout << num << endl;
}

// 참조 형태로 받을 경우 vec안의 값을 바꿀 수 있다.
for (auto& num : vec)
{
	cout << num << endl;
}

 

단점

  • Index 정보가 없다(현재 몇 번째 원소를 다루는지 알 수 없다)