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

例を含むC++のratio_equal()


この記事では、C ++ STLでのratio_equal()関数の動作、構文、および例について説明します。

ratio_equalテンプレートとは何ですか?

ratio_equalテンプレートは、ヘッダーファイルで定義されているC++STLに組み込まれています。 ratio_equalは、2つの比率を比較するために使用されます。このテンプレートは2つのパラメーターを受け入れ、指定された比率が等しいかどうかをチェックします。 2つの比率があるように、単純化すると1/2と3/6は等しくなりますが、数値は等しくないため、C ++には、2つの比率が等しいかどうかを確認し、等しい場合はtrueを返すテンプレートが組み込まれています。 false。

したがって、2つの比率が等しいかどうかを確認する場合は、C ++でロジック全体を記述する代わりに、提供されているテンプレートを使用してコーディングを容易にすることができます。

構文

template <class ratio1, class ratio2> ratio_equal;

パラメータ

テンプレートは次のパラメータを受け入れます-

  • ratio1、ratio2 −これらは、等しいかどうかを確認する2つの比率です。

戻り値

この関数は、2つの比率が等しい場合はtrueを返し、それ以外の場合はfalseを返します。

入力

typedef ratio<3, 6> ratio1;
typedef ratio<1, 2> ratio2;
ratio_equal<ratio1, ratio2>::value;

出力

true

入力

typedef ratio<3, 9> ratio1;
typedef ratio<1, 2>ratio2;
ratio_equal<ratio1, ratio2>::value;

出力

false

#include <iostream>
#include <ratio>
using namespace std;
int main(){
   typedef ratio<2, 5> R_1;
   typedef ratio<10, 25> R_2;
   //check whether ratios are equal or not
   if (ratio_equal<R_1, R_2>::value)
      cout<<"Ratio 1 and Ratio 2 are equal";
   else
      cout<<"Ratio 1 and Ratio 2 aren't equal";
   return 0;
}

出力

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

Ratio 1 and Ratio 2 are equal

#include <iostream>
#include <ratio>
using namespace std;
int main(){
   typedef ratio<2, 5> R_1;
   typedef ratio<1, 3> R_2;
   //check whether ratios are equal or not
   if (ratio_equal<R_1, R_2>::value)
      cout<<"Ratio 1 and Ratio 2 are equal";
   else
      cout<<"Ratio 1 and Ratio 2 aren't equal";
   return 0;
}

出力

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

Ratio 1 and Ratio 2 aren’t equal

Code-3:
//if we try to enter 0 in the denominator then the output will be
#include <iostream>
#include <ratio>
using namespace std;
int main(){
   typedef ratio<2, 5> R_1;
   typedef ratio<1, 0> R_2;
   //check whether ratios are equal or not
   if (ratio_equal<R_1, R_2>::value)
      cout<<"Ratio 1 and Ratio 2 are equal";
   else
      cout<<"Ratio 1 and Ratio 2 aren't equal";
   return 0;
}

出力

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

/usr/include/c++/6/ratio:265:7: error: static assertion failed: denominator cannot be zero
static_assert(_Den != 0, "denominator cannot be zero");

  1. C++でマンハッタン距離に等しい距離のパスをカウントします

    2D座標系上の2つの点を(x1、y1)および(x2、y2)として表す変数x1、x2、y1、y2が与えられます。目標は、これら2つのポイント間のマンハッタン距離に等しい距離を持つすべてのパスを見つけることです。 マンハッタン距離 マンハッタン2点(x1、y1)と(x2、y2)の間の距離は- MD =| x1 – x2 | + | y1 – y2 | A =| x1 –x2|を取りましょうおよびB=| y1 – y2 | マンハッタン距離がMDに等しいすべてのパスでは、エッジが(A + B)としてカウントされます。水平エッジとB垂直エッジ。したがって、2つのグループに分割された(A +

  2. C++で3nスライスのピザ

    さまざまなサイズの3nスライスのピザがあるとすると、私と2人の友人は次のようにピザのスライスを取ります- ピザのスライスを選びます。 友達のアマルが私のピックの反時計回りに次のスライスをピックします。 友達のBimalが、私のピックの時計回りに次のスライスをピックします。 ピザのスライスがなくなるまで、これらの手順を繰り返します。 ピザスライスのサイズは、時計回りの円形配列スライスで表されます。可能な最大のスライスサイズの合計を見つける必要があります。 したがって、入力が[9,8,6,1,1,8]のような場合、 次に、各ターンでサイズ8のピザスライスを選