在本文中,我们将讨论C ++ STL中ratio_equal()函数的工作,语法和示例。
ratio_equal模板内置在C ++ STL中,该模板在<ratio>头文件中定义。ratio_equal用于比较两个比率。该模板接受两个参数,并检查给定的比率是否相等。就像我们有两个比率1/2/3/6一样,当我们简化它们时,它们是相等的,但是数字不相等,因此C ++有一个内置模板来检查两个比率是否相等,如果相等,则返回true假。
因此,当我们要检查两个比率的相等性时,可以使用提供的模板来简化编码,而不必使用C ++编写整个逻辑。
template <class ratio1, class ratio2> ratio_equal;
模板接受以下参数-
ratio1,ratio2-这是我们要检查的两个比率是否相等。
当两个比率相等时,该函数返回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;
   //检查比率是否相等
   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;
   //检查比率是否相等
   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:
//如果我们尝试在分母中输入0,则输出为
#include <iostream>
#include <ratio>
using namespace std;
int main(){
   typedef ratio<2, 5> R_1;
   typedef ratio<1, 0> R_2;
   //检查比率是否相等
   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");