Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++에서 auto 및 decltype이란 무엇입니까?


Auto는 자동 유형 추론에 사용되는 C++11 이상의 키워드입니다. 유형 유추 또는 추론은 프로그래밍 언어에서 표현식의 데이터 유형을 자동으로 감지하는 것을 말합니다. 이는 일부 강력한 정적으로 유형이 지정된 언어에 있는 기능입니다. 예를 들어, 벡터를 반복하는 반복자를 만들고 싶다면 auto를 사용하면 됩니다.

#include<iostream>
#include<vector>
using namespace std;
int main() {
   vector<int> arr(10);
   for(auto it = arr.begin(); it != arr.end(); it ++) {
      cin >> *it;
   }
   return 0;
}

위의 프로그램에서 자동으로 std::vector::iterator.

유형을 가져옵니다.

decltype 유형 지정자는 지정된 표현식의 유형을 생성합니다. 변수에 할당된 값을 기반으로 유형을 추론하는 auto와 달리 decltype은 전달된 표현식에서 유형을 추론합니다. decltype에서 반환된 값은 다른 변수를 정의하는 데 직접 사용할 수 있습니다. 예를 들어 위의 코드는 decltype -

를 사용하여 다음과 같이 작성할 수 있습니다.

예시

#include <iostream>
#include <vector>
using namespace std;
int main() {
   vector<int> arr(10);
   for (decltype(arr.begin()) it = arr.begin(); it != arr.end(); it++) {
      cin >> *it;
   }
   return 0;
}

decltype으로 표시되는 유형은 auto로 추론되는 유형과 다를 수 있습니다. 이러한 미묘한 차이점에 대한 자세한 내용은 C++의 유형 추론에 대한 12페이지 설명 -https://thbecker.net/articles/auto_and_decltype/section_01.html

에서 확인할 수 있습니다.