SW/C++

[ C++ ] range base for 개념 및 예제

얇은생각 2018. 11. 16. 11:27
반응형

Range base for

반복문을 작성하기 위해 배열, vector, map 등 같은 범위가 지정된 변수들을 이용합니다. 배열을 반복하기 위해 보통 for 문을 많이 작성합니다. 만약  배열이 10개라서 10번의 반복문을 작성하였다고 가정하겠습니다. 그런데 배열의 선언 변경되면서 원소의 개수가 변경되면 어떻게 될까요? 원소의 개수가 변경된 만큼 배열의 반복문의 숫자도 모두 변경해야하는 불편함이 있습니다. 컴파일 할때마다 수정해야하고 아주 귀찮은 일입니다.


C++11에서는 배열, vector, map 등 범위가 있는 변수들을 하나씩 알아서 방문하는 range base for 문을 사용할 수 있습니다. 


#include <iostream>
#include <vector>
using namespace std;
 
int main()
{
    int numArray[] = { 246810 };
    for (int i : numArray)       // 배열 반복
    {
        cout << i << endl;
    }
 
    vector<int> numVector;
 
    numVector.push_back(1);
    numVector.push_back(3);
    numVector.push_back(5);
    numVector.push_back(7);
    numVector.push_back(9);
 
    for (int i : numVector)      // vector 반복
    {
        cout << i << endl;
    }
 
    return 0;
}
cs




우선 배열을 이용한 경우 10행과 같이 numArray로부터 값을 받을 변수를 앞에 선언합니다. 반복하며 값을 찾을 배열을 전달해 줍니다. 배열을 하나씩 방문하고 값을 하나씩 받아오는 것을 확인할 수 있습니다. 다음 반복문도 동일합니다. Vector에 있는 값을 하나씩 얻어오기 위해 변수를 선언합니다. Vector로 선언된 변수를 전달하는 것을 알 수 있습니다.

반응형

'SW > C++' 카테고리의 다른 글

[ C++ ] tuple 개념 및 예제  (1) 2018.11.16
[ C++ ] 스마트 포인터 개념 및 예제  (0) 2018.11.16
[ C++ ] Lambda 개념 및 예제  (0) 2018.11.15
[ c++ ] auto 개념 및 예제  (0) 2018.11.15
C++11은 무엇일까요?  (0) 2018.11.15