본문 바로가기

프로그래밍/C/C++

c++ 11, 14 for, auto



c++ 11 부터 추가된 for, auto 사용법이 매우 마음에 든다 *-_-*


책에서 읽어보니 원래 auto 키워드는 처음부터 넣고 싶었지만

C언어의 auto 키워드와 겹쳐서 사용하지 못 했다고 한다.

(C언어의 auto 키워드는 스코프안에 선언된 객체가 해당 블록이 끝날때 자동 파괴된다는 의미)



간단히 소개 하겠음



int value1 = 10;

auto value2 = value1;



아래와 같이 사용 가능하다.  짱 편하지?!

int arr[10] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };

for ( auto v : arr ) printf("%d\n", v);



아래처럼도 사용 가능하다! 짱이다;! -_-

void func(std::map<int, int> m)

{

for ( auto v : m ) printf("%d\n", v->first);

}


for ( auto v : { 1, 2, 3, 4, 5 } ) 이렇게도 된다!



부연 설명을 더 하자면...

위에 for는 v의 각 원소에 대해 첫번째부터 마지막 원소까지 복사본을 v에 저장한뒤에 출력 한다는 의미이다.


여기서 ! 그냥 넘어가면 안될 한마디!

마지막 원소까지 복사본을 v에 저장한뒤에 출력 한다는 의미이다.


매번 복사한다는거다 -_-

복사를 피할려면 아래와 같이 &(참조)를 사용해야 한다.

int arr[10] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };

for ( auto& v : arr )




'프로그래밍 > C/C++' 카테고리의 다른 글

c++ 11, 14 unique_ptr  (0) 2017.06.13
c++ 11, 14  (0) 2017.06.13
c++ 11, 14, constexpr  (0) 2016.08.06
람다, 클로져, Closure, 람다함수 사용법  (0) 2013.07.23
GOF 상태패턴 미로게임 Maze Game  (0) 2013.07.23