본문으로 바로가기

[C++]range base for loop(범위기반 for문)

category C++ 2018. 6. 9. 11:00


파이썬같은 언어에서는 배열이나 자료구조의 인덱스를 매우쉽게 가져 올 수 있다.

list = [0,1,2,3,4,5,6]

for i in list:
    print(i)
0
1
2
3
4
5
6

이렇게말이다.


c++에서도 이와같은 range base for loop 를 사용 할 수 있다.


먼저 이터레이터(iterator)를 이용한 방법과 인덱스(index)를 이용한 방법이 있다.

#include <iostream>
#include <vector>
using namespace std;
int main()
{
	vector<int> v;
	
	v.push_back(0);
	v.push_back(1);
	v.push_back(2);
	v.push_back(3);
	v.push_back(4);
	v.push_back(5);
	v.push_back(6);

	for(vector<int>::iterator i = v.begin(); i != v.end();i++)
		cout<<*i<<endl;

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

	for(int i=0;i<v.size();i++)
		cout<<v[i]<<endl;
}
0
1
2
3
4
5
6

모든방법 다 같은 결과가 나온다. 


또다른 방법으로는 c++11 이상에서는

	for(auto i: v) {
		cout << i
0
1
2
3
4
5
6

이렇게 간단히 인덱스를 얻을 수 있다.