😒 저 저 저 개념없는 나/🤬 이런 C++

[C++] auto 타입 추론

우주수첩 2022. 4. 16. 00:44
728x90

??? 내가 auto를 찾아보게 된 경로가 무엇인가?

 

C++을 사용하여 set을 구현하는 도중 set의 모든 element에 접근하여 이들을 출력하는 for문을 확인하였다.

 

cout << s.size() << "\n";
	for (auto x : s) {
		cout << x << "\n";
	}

이 때 auto를 보았고 반복문에 적용되어 있는 낯선 자료형을 보고 무엇인지 찾아보았다.

 

auto는 무엇이고 어떻게 사용할 수 있는 것 일까?

 

1. auto란?

-> 타입 추론
-> 데이터 타입 추론

-> 자동 데이터 추론

-> 초기화 값에 따라 알아서 데이터 타입을 정해주는 키워드

라고 불린다.

 

=> 선언한 변수나 람다 식의 타입을 컴파일러에게 추론하도록 맡긴다.

 

ex)

auto a1 = 10;                       // int 타입

auto a2 = 10.0f;                  // float 타입

auto a3 = "c";                      // char 타입

auto a4 = "BlockDMask";    // string 타입

auto a5 = {10, 20, 30};       //int 배열 타입

 

 

단순한 자료형 뿐만 아니라 iterator를 선언하는 데에서도 적용 할 수 있다.

#include<iostream>
#include<vector>
#include<string>
using namespace std;
 
int main(void)
{
    vector<string> v = { "yo", "nuhmoo", "zipeh", "gago", "shipeun", "girl" };
    cout << "vector<string> v : ";
    
    //vector<string>::iterator = v.begin();
    auto it = v.begin();
    for (; it != v.end(); ++it)
    {
        cout << *it << ", ";
    }
    return 0;
}

 

auto 타입은 range base for문과 함께 쓰면 유용하다고 한다. 

다음 포스팅에서 이에 대해 다루어 보도록 하겠. 땨.

 

 

 

참고 url : https://blockdmask.tistory.com/384

728x90

'😒 저 저 저 개념없는 나 > 🤬 이런 C++' 카테고리의 다른 글

[c++] std::tie()  (0) 2022.06.05
[C++] 헤더 <algorithm >  (0) 2022.04.19
[C++] pair 자료형  (0) 2022.04.16