티스토리 뷰
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 |
---|
- Total
- Today
- Yesterday
- ubuntu 16.04
- 오픈 소스 배포
- kotlinx serialization
- type inference
- 자동 배포
- swip
- auto depoly
- jitpack
- android serialization
- Git
- git server
- qtwebengine
- delete item
- Apache
- serializable
- publish opensource
- weak_ptr
- expandable recyclerview
- build server
- 리사이클러뷰 확장
- security.ubuntu.com
- kotlin
- Parcelable
- C++
- android open source
- Jenkins
- git hook
- remove item
- data transfer
- RecyclerView
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |