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

C++のis_signedテンプレート


この記事では、C++STLでのstd::is_signedテンプレートの動作、構文、および例について説明します。

is_signedは、ヘッダーファイルの下にあるテンプレートです。このテンプレートは、指定されたタイプTが符号付きタイプであるかどうかを確認するために使用されます。

署名付きタイプとは何ですか?

これらは基本的な算術型であり、符号値が含まれています。すべての算術データ型は、符号付きと符号なしのいずれかです。

負の値を表示したいので、符号付きタイプを使用します。

例:-1はintに署名され、-1.09はfloatに署名されます。

デフォルトでは、すべての型が符号なしになるように符号付きであるため、データ型の前に符号なしを付ける必要があります。

構文

template <class T> is_signed;

パラメータ

テンプレートにはタイプTのパラメーターのみを含めることができ、Tが符号付きタイプであるかどうかを確認できます。

戻り値

ブール値を返します。指定された型が符号付き型の場合はtrue、指定された型が符号付き型でない場合はfalseです。

Input: is_signed<int>::value;
Output: True

Input: is_signed<unsigned int>::value;
Output: False

#include <iostream>
#include <type_traits>
using namespace std;
class TP {
};
enum TP_1 : int {};
enum class TP_2 : int {};
int main() {
   cout << boolalpha;
   cout << "checking for is_signed:";
   cout << "\nint:" << is_signed<int>::value;
   cout << "\nTP:" << is_signed<TP>::value;
   cout << "\nTP_1:" << is_signed<TP_1>::value;
   cout << "\nTP_2:" << is_signed<TP_2>::value;
   return 0;
}

出力

上記のコードを実行すると、次の出力が生成されます-

checking for is_signed:
Int: true
TP: false
TP_1: false
TP_2: false

#include <iostream>
#include <type_traits>
using namespace std;
int main() {
   cout << boolalpha;
   cout << "checking for is_signed:";
   cout << "\nfloat:" << is_signed<float>::value;
   cout << "\nSigned int:" << is_signed<signed int>::value;
   cout << "\nUnsigned int:" << is_signed<unsigned int>::value;
   cout << "\ndouble:" << is_signed<double>::value;
   return 0;
}

出力

上記のコードを実行すると、次の出力が生成されます-

checking for is_signed:
Float: true
Signed int: true
Unsigned int: false
Double: true

  1. C++でプロセスを強制終了します

    n個のプロセスがあるとします。ここでは、各プロセスにPIDまたはプロセスIDと呼ばれる一意のIDがあり、そのPPID(親プロセスID)もそこにあります。 各プロセスには1つの親プロセスしかありませんが、1つ以上の子プロセスがある場合があります。 これは木の構造のようなものです。 PPID =0のプロセスは1つだけです。これは、このプロセスに親プロセスがないことを意味します。すべてのPIDは一意の正の整数になります。 プロセスのリストを表すために2つの整数のリストを使用します。最初のリストには、各プロセスのPIDが含まれ、2番目のリストには対応するPPIDが含まれます。したがって、2つのリ

  2. C++でのリスのシミュレーション

    木、リス、そしていくつかのナッツがあります。位置は、2Dグリッドのセルで表されます。あなたの目標は、リスがすべてのナッツを集めて、それらを1つずつ木の下に置くための最小距離を見つけることです。リスは一度に最大で1つのナットしかとることができず、隣接するセルに向かって上下左右の4つの方向に移動できます。距離は移動回数で表されます。 したがって、入力が高さ:5幅:7木の位置:[2,2]リス:[4,4]ナッツ:[[3,0]、[2,5]]の場合、出力は12になります。 、 これを解決するには、次の手順に従います- 関数calc()を定義します。これには、x1、y1、x2、y2、が必要で