Computer >> Máy Tính >  >> Lập trình >> C ++

ratio_equal () trong C ++ với ví dụ


Trong bài viết này, chúng ta sẽ thảo luận về cách làm việc, cú pháp và ví dụ của hàm ratio_equal () trong C ++ STL.

Mẫu ratio_equal là gì?

Mẫu ratio_equal được tạo sẵn trong C ++ STL, được định nghĩa trong tệp tiêu đề . ratio_equal được sử dụng để so sánh hai tỷ lệ. Mẫu này chấp nhận hai tham số và kiểm tra xem các tỷ lệ đã cho có bằng nhau hay không. Giống như chúng ta có hai tỷ lệ, 1/2 và 3/6 bằng nhau khi chúng ta đơn giản hóa chúng nhưng các số không bằng nhau vì vậy C ++ có một mẫu có sẵn để kiểm tra xem hai tỷ lệ có bằng nhau hay không và trả về true nếu chúng bằng nhau. sai.

Vì vậy, khi chúng ta muốn kiểm tra sự bằng nhau của hai tỷ lệ, thay vì viết toàn bộ logic trong C ++, chúng ta có thể sử dụng mẫu được cung cấp để giúp mã hóa dễ dàng hơn.

Cú pháp

template <class ratio1, class ratio2> ratio_equal;

Tham số

Mẫu chấp nhận (các) tham số sau -

  • ratio1, ratio2 - Đây là hai tỷ lệ mà chúng tôi muốn kiểm tra xem chúng có bằng nhau hay không.

Giá trị trả về

Hàm này trả về true khi hai tỷ lệ bằng nhau, nếu không thì hàm này trả về false.

Đầu vào

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

Đầu ra

true

Đầu vào

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

Đầu ra

false

Ví dụ

#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;
}

Đầu ra

Nếu chúng ta chạy đoạn mã trên, nó sẽ tạo ra kết quả sau -

Ratio 1 and Ratio 2 are equal

Ví dụ

#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;
}

Đầu ra

Nếu chúng ta chạy đoạn mã trên, nó sẽ tạo ra kết quả sau -

Ratio 1 and Ratio 2 aren’t equal

Ví dụ

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;
}

Đầu ra

Nếu chúng ta chạy đoạn mã trên, nó sẽ tạo ra kết quả sau -

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