在本文中,我们将讨论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");