본문 바로가기
Algorithm

C++ 타입 추론 키워드 auto

by SoyeonCha 2025. 4. 23.

C++에서 auto는 **문법적으로 "타입 추론 키워드(type inference keyword)"**에 해당합니다.


📌 한 줄 요약

auto는 컴파일러가 변수의 타입을 자동으로 추론하도록 하는 키워드입니다.


✅ 문법적으로는?

auto는 C++의 변수 선언 구문에서 쓰이는 형(type) 명시 방식이에요.
C++11부터 도입되었고, 타입을 사람이 직접 쓰지 않아도 되게 도와주는 역할을 해요.


🔍 예시로 이해하기

기존 방식:

cpp
복사편집
map<int, int> mp; for (map<int, int>::iterator it = mp.begin(); it != mp.end(); ++it) { cout << it->first << " " << it->second << "\n"; }

😵 너무 길고 복잡하죠?

auto 사용:

cpp
복사편집
for (auto it = mp.begin(); it != mp.end(); ++it) { cout << it->first << " " << it->second << "\n"; }

또는 range-based for문에서는:

cpp
복사편집
for (auto kv : mp) { cout << kv.first << " " << kv.second << "\n"; }

➡ auto는 kv가 pair<const int, int>라는 걸 컴파일러가 자동으로 추론해줘요.


📘 문법 카테고리

  • auto는 **형(type) 지정자(type specifier)**에 속해요.
  • int, double, char처럼 타입을 명시하는 자리에 오는 키워드지만,
    컴파일러가 오른쪽 값을 보고 타입을 추론하게 합니다.

✅ 어떤 상황에서 유용할까?

상황이유
STL 컨테이너 반복 반복자 타입이 너무 길기 때문에
람다 함수 리턴 타입 추론 복잡한 리턴 타입을 간단히
템플릿 프로그래밍 타입을 일반화할 때 유용

🧠 정리

항목의미
auto 변수의 타입을 컴파일러가 추론
문법상 위치 타입 선언자 (int, double 같은 자리)
대표 예 auto it : mp, auto i = 10, auto [x, y] = pair
등장 버전 C++11 (기초), C++14~17에서 더 확장됨

궁금하셨던 "auto가 문법에서 뭐에 해당하냐"는 질문의 정답은:

타입 추론용 키워드로, 변수의 타입을 자동으로 추론하는 문법 요소입니다!