How to use the ratio_greater() function in C++

In this shot, we will learn how to use the ratio_greater() function. This template alias is used to check whether the first ratio object is greater than the second ratio object. It gives the Boolean value as a result i.e., either true or false. The comparison is done between the simplest form of the two ratios by the ratio_greater() method.

The ratio_greater() function is available in <ratio> header file in C++.

What is a ratio?

A ratio is a representation of a fraction in which the numerator and denominator are differentiated by the colon (:) symbol. The numerator and denominator can be of float data type.

Let’s understand with the help of examples.

  • Suppose that the first ratio is 1 : 2 and the second ratio is 5 : 25.
  • The result of the ratio_greater() function for comparison gives the result as true.

Let’s explore how the greater than check took place.

  • The ratios 1 : 2 and 5 : 25 can be represented as 12\frac{1}{2} and 525\frac{5}{25} in fractional form, respectively.
  • The ratio 12\frac{1}{2} is itself a simplified form. 525\frac{5}{25} on simplification gives 15\frac{1}{5}.
  • Now, the simplified fractions i.e., 12\frac{1}{2} and 15\frac{1}{5} are compared.

Hence, we can see that the first ratio is greater than the second ratio and we get the final result as true.

Parameters

The ratio_equal() method takes the parameters below.

  • Ratio1: A ratio object which is to be compared for greater than inequality with the other ratio object.
  • Ratio2: Another ratio object which gets compared for greater than inequality with the previous ratio object.

Return value

This function returns the Boolean result after comparison for greater than inequality.

  • If the first ratio object is greater than second ratio object, then it returns true.

  • If the first ratio object is not greater than second ratio object, then it returns false.

Code

Let’s have a look at the code.

#include <iostream>
#include <ratio>
using namespace std;
int main()
{
typedef ratio<1, 2> ratio1;
typedef ratio<5, 25> ratio2;
if (ratio_greater<ratio1, ratio2>::value)
cout<<"Ratio 1 is greater than Ratio 2";
else
cout<<"Ratio 1 is smaller than Ratio 2";
return 0;
}

Explanation

  • In lines 1 and 2, we imported the required header files.

  • In line 5, we made a main() function.

  • In lines 7 and 8, we declared two ratios.

  • In line 10, we performed the comparison between the two declared ratios by using ratio_greater() function as a condition inside the if statement. If the first ratio object is greater than the second ratio object, then the if statement gets executed and displays the message regarding the result.

  • In line 12, if the condition doesn’t satisfy i.e., the first ratio object is not greater than the second ratio object, then the else statement gets executed and displays the message regarding the result.

In this way, we can use the ratio_greater() function to check whether the first ratio object is greater than the second ratio object.

Free Resources