C++11 특징 (auto)

2021. 3. 2. 22:17

 

컴파일 타임에 type이 결정이 되며 현재까진 대부분의 타입이 정의 된다.

//자료형

auto Name = "yoem"; ==> char*

auto Num = 1; ==> int

auto Name     = "Yoem";          //char*
auto Num    = 1;            //int

int Num2 = 4;
auto* pNum2 = &Num2;        //int*
auto& refNum2 = Num2;         //Reference

class A
{
};

auto pA = new A();            // Class A Pointer

하지만 막상 사용해보면 자료형용만 쓰면 단점이 있었다. 가장 큰 단점으로 보인것은 아무래도 코드 수정중 해당 타입이 무엇인지 한번에 알기 어려웠다. 물론 찾아가면 알수 있지만 보자마자 아 이것 무슨 형식이구나 하는 시간이 걸렸고 그래서 위의 형태로는 잘 사용을 안하게 되었다. 그렇다면 어떻게 사용할까 현재까지는 위의 형식 말고 전부라고 해도 될꺼 같다.

//Iterator
std::vector vArray;

vArray.push_back(1);
vArray.push_back(2);
vArray.push_back(3);

for(auto iter = vArray.begin(); iter != vArray.end(); iter++)
{
}

//lambda
void Add(int a, int b)
{
	return a+b;
}

auto Func = [](int a, int b){ return Add(a,b); };
int nNum = Func(4,5);

형식으로 사용한다. iterator 형식은 auto로 사용안하게 되면 

 

std::vector<int>::const_iterator

 

형식으로 써야하는데 저걸 단 4 글자로 줄일수 있는것이다. 또한 lambdb도 함수 포인터 형식으로 했는데 iterator와 마찬가지로 글자수를 많이 줄여줄수 있다. 

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

C++11 특징 (std::pair, std::tuple)  (0) 2021.03.10
C++ 11 특징 ( R Value)  (0) 2021.03.09
C++11 특징 (Uniform 초기화)  (0) 2021.03.05
C++11 특징 (lambda)  (0) 2021.03.03
C++11 특징( ranged for loop)  (0) 2021.03.03
:
BLOG main image
by 한그릇더

공지사항

카테고리

분류 전체보기 (30)
C++ (16)
C# (0)
시스템프로그램이 (2)
Android (0)
리눅스 (2)
Etc (8)
Meanstack (1)

최근에 올라온 글

최근에 달린 댓글

최근에 받은 트랙백

태그목록

글 보관함

달력

«   2025/05   »
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 29 30 31
Total :
Today : Yesterday :