728x90

이 range based for는 Visual C++(VC)의 특화 기능인 'for each'문과 비슷하다.



당연히 STL에서도 사용이 가능하다. 그러므로 STL의 Iterator를 지원하는 컨테이너라면 'range based for'를 활용하여 편하게 사용하도록 하자.


for( auto i : arrNumberList )의 경우에는 i의 값을 for문 안에서는 변경할 수 있찌만, for 문을 나오면 arrNumberList의 요소에는 적용되지 않는다. 


만약 요소의 값을 변경하고 싶다면 참조를 사용하면된다. for( auto& i : arrNumberList )


또한 for문에서 요소 값을 변경하지 못하도록 하려면 const를 사용하면 된다. for(auto const i : arrNumberList)


마지막으로 for문에서 데이터셋 요소에 접근할 때 임시 변수를 만드므로 이 비용을 줄이고 싶다면, 참조를 사용하는 게 좋다.

만약 요소 값을 변경하지 못하게 하고 싶다면 const 참조를 사용하면 된다. for(auto const &i : arrNumberList)





728x90

'Basic Programming > C++ 11' 카테고리의 다른 글

C++11 - nullptr  (0) 2016.02.26
C++11 - enum  (0) 2016.02.26
C++11 - 람다(lambda) 함수 - 2  (0) 2016.02.25
C++11 - 람다(lambda) 함수 - 1  (0) 2015.12.08
C++11 - auto 키워드  (0) 2015.12.08

+ Recent posts