티스토리 뷰

c++

[c++ 11] auto

Shin_lab 2017. 2. 8. 23:34

c++ 11에 추가된 기능인 auto에 대해서 살펴보겠습니다.


auto는 간단하게 말해서 c++ 11로 넘어오면서 생긴 타입 추론(Type Inference) 방법입니다.


기존에 우리가 변수를 선언해서 쓸때는 다음과 같이 앞에 변수를 선언하기 위해서는 정확한 타입을 지정하여 사용했었습니다.

int a;

float b = 0.01;

char c = 'c';

string str = "hello";


하지만 auto를 사용하게 되면 다음과 같이 입력되는 변수 타입에 따라 컴파일시에 해당 타입으로 변환될 것입니다.

auto a = 10;           // int

auto b = 0.01;        // double

auto c = 'c';           // char

auto str = "hello"    // char const *


또한, auto*, auto&, const auto 등등 많은 경우에 쓰입니다.

하지만 위와 같이 초기값을 넣어주는 경우에만 사용 할 수 있습니다.


위의 간단한 예제에서는 그런가 보다 하겠지만 STL이나 Template 같이 복잡한 코드로 진입하게 되면 편하다는 걸 느끼게 될 것입니다.

auto 설명할때 많이 사용하는 iterator 예제를 보겠습니다.


1. for (std::vector<int>::iterator it=myvec.begin(); it != myvec.end(); ++it)

2. for (auto it=myvec.begin(); it != myvec.end(); ++it)


1번 예제보다 2번 예제에서 iterator의 타입 지정부분이 심플해진걸 확인 할 수 있습니다.





'c++' 카테고리의 다른 글

[c++11] Smart Pointer  (0) 2017.02.10