파이썬같은 언어에서는 배열이나 자료구조의 인덱스를 매우쉽게 가져 올 수 있다.
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
이렇게 간단히 인덱스를 얻을 수 있다.
'C++' 카테고리의 다른 글
[C++]문자열 자르기(strtok) (4) | 2018.07.02 |
---|---|
[C++]파일 입출력 간단예제 fstream (ifstream, ofstream) (1) | 2018.06.26 |
[C++]벡터 중복제거(sort,unique,erase) (6) | 2018.05.21 |