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 |