C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

C ++での型推論(autoおよびdecltype)


このチュートリアルでは、C ++での型干渉(autoおよびdecltype)を理解するためのプログラムについて説明します。

autoキーワードの場合、変数のタイプはその初期化子のタイプから定義されます。さらにdecltypeを使用すると、呼び出された要素から変数の型を抽出できます。

自動タイプ

#include <bits/stdc++.h>
using namespace std;
int main(){
   auto x = 4;
   auto y = 3.37;
   auto ptr = &x;
   cout << typeid(x).name() << endl
      << typeid(y).name() << endl
      << typeid(ptr).name() << endl;
   return 0;
}

出力

i
d
Pi

declタイプ

#include <bits/stdc++.h>
using namespace std;
int fun1() { return 10; }
char fun2() { return 'g'; }
int main(){
   decltype(fun1()) x;
   decltype(fun2()) y;
   cout << typeid(x).name() << endl;
   cout << typeid(y).name() << endl;
   return 0;
}

出力

i
c

  1. C ++の変数と変数の種類は何ですか?

    変数は、プログラムが操作できる名前付きストレージを提供します。 C ++の各変数には特定のタイプがあり、変数のメモリのサイズとレイアウトを決定します。そのメモリ内に格納できる値の範囲。変数に適用できる一連の操作。変数の非常に単純な例は-です。 int my_val = 5; ここでは、int(integer)型の変数my_valがあり、値は5です。より一般的には、変数は-として定義されます。 type variable_name; または、それらも初期化したい場合- type variable_name = value; 変数の名前は、文字、数字、および下線文字で構成できます。文字またはア

  2. 自動キーワードはC++で何をしますか?

    Autoは、C ++がCから「継承」したキーワードであり、ほぼ永久に存在していましたが、実際には使用されていませんでした。これはすべて、C++11のコンテキストから型の推定を行うためのautoの導入によって変更されました。 C ++ 11より前は、各データ型をコンパイル時に明示的に宣言する必要があり、実行時の式の値を制限しますが、C ++の新しいバージョンの後は、プログラマーが型の推定をコンパイラー自体に任せることができる多くのキーワードが含まれています。 型推論機能を使用すると、コンパイラーがすでに知っていることを書き出すために費やす時間を短縮できます。すべての型はコンパイラフェーズでの