Open In App

# Ratio Manipulations in C++ | Set 2 (Comparison)

Prerequisite Ratio Manipulations in C++ | Set 1(Arithmetic)

In C++, the <ratio> header file allows us to manipulate ratios using various inbuilt template alias. The header file was introduced from C++11 onwards. In this article, we will be discussing the Comparison of Ratio Manipulations in C++. The following functions are used:

• ratio_equal
• ratio_not_equal
• ratio_greater
• ratio_less
• ratio_greater_equal
• ratio_less_equal

1. ratio_equal: This template alias checks if the ratios in its arguments are equal. Returns true if equal, else returns false. It returns a boolean member constant “value”

2. ratio_not_equal: This template alias checks if the ratios in its arguments are not equal. Returns true if not equal, else if equal returns false. It returns a boolean member constant “value”.

## CPP

 // C++ code to demonstrate the working of// ratio_equal and ratio_not_equal#include #include // for ratio manipulationusing namespace std;  // Driver Codeint main(){    // Declaring ratios    typedef ratio<10, 100> ratio1;    typedef ratio<1, 10> ratio2;      // Checking if ratios are equal using ratio_equal    ratio_equal::value        ? cout << "Ratios are equal"        : cout << "Ratios are not equal";    cout << endl;      // Checking if ratios are not equal using    // ratio_not_equal    ratio_not_equal::value        ? cout << "Ratios are not equal"        : cout << "Ratios are equal";      return 0;}

Output

Ratios are equal
Ratios are equal

3. ratio_greater: This temporary alias checks if ratio1 is greater than ratio2. It returns a boolean member constant “value” which returns true if ratio1 is greater than ratio2 else returns false.

4. ratio_less: This temporary alias checks if ratio1 is less than ratio2. It returns a boolean member constant “value” which returns true if ratio1 is less than ratio2 else returns false.

## CPP

 // C++ code to demonstrate the working of// ratio_greater and ratio_less#include #include // for ratio manipulationusing namespace std;  // Driver Codeint main(){    // Declaring ratios    typedef ratio<10, 100> ratio1;    typedef ratio<11, 100> ratio2;      // Checking if ratio1 is greater than ratio2    // using ratio_greater    ratio_greater::value        ? cout << "ratio1 is greater than ratio2"        : cout << "ratio1 is not greater than ratio2";    cout << endl;      // Checking if ratio1 is less than ratio2    // using ratio_less    ratio_less::value        ? cout << "ratio1 is less than ratio2"        : cout << "ratio1 is not less than ratio2";    cout << endl;      return 0;}

Output

ratio1 is not greater than ratio2
ratio1 is less than ratio2

5. ratio_greater_equal: This temporary alias checks if ratio1 is greater or equal than ratio2. It returns a boolean member constant “value” which returns true if ratio1 is greater or equal than ratio2 else returns false.

6. ratio_less_equal: This temporary alias checks if ratio1 is less or equal than ratio2. It returns a boolean member constant “value” which returns true if ratio1 is less or equal than ratio2 else returns false.

## CPP

 // C++ code to demonstrate the working of// ratio_greater_equal and ratio_less_equal#include #include // for ratio manipulationusing namespace std;  // Driver Codeint main(){    // Declaring ratios    typedef ratio<10, 100> ratio1;    typedef ratio<1, 10> ratio2;      // Checking if ratio1 is greater or equal than ratio2    // using ratio_greater_equal    ratio_greater_equal::value        ? cout << "ratio1 is greater or equal than ratio2"        : cout << "ratio1 is not greater or equal than "                  "ratio2";    cout << endl;      // Checking if ratio1 is less or equal than ratio2    // using ratio_less_equal    ratio_less_equal::value        ? cout << "ratio1 is less or equal than ratio2"        : cout << "ratio1 is not less or equal than ratio2";    cout << endl;      return 0;}

Output

ratio1 is greater or equal than ratio2
ratio1 is less or equal than ratio2