Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

ratio_equal() ใน C ++ พร้อมตัวอย่าง


ในบทความนี้ เราจะพูดถึงการทำงาน ไวยากรณ์ และตัวอย่างของฟังก์ชัน ratio_equal() ใน C++ STL

เทมเพลต Ratio_equal คืออะไร

เทมเพลต Ratio_equal สร้างขึ้นใน C++ STL ซึ่งกำหนดไว้ในไฟล์ส่วนหัว Ratio_equal ใช้เพื่อเปรียบเทียบอัตราส่วนทั้งสอง แม่แบบนี้ยอมรับสองพารามิเตอร์และตรวจสอบว่าอัตราส่วนที่กำหนดเท่ากันหรือไม่ เช่นเดียวกับที่เรามีสองอัตราส่วน 1/2 และ 3/6 ซึ่งเท่ากันเมื่อเราทำให้พวกมันง่ายขึ้น แต่ตัวเลขไม่เท่ากัน ดังนั้น C ++ จึงมีเทมเพลตในตัวเพื่อตรวจสอบว่าอัตราส่วนทั้งสองเท่ากันหรือไม่และคืนค่า จริง หากเท่ากันอย่างอื่น เท็จ

ดังนั้น เมื่อเราต้องการตรวจสอบความเท่าเทียมกันของอัตราส่วนทั้งสอง แทนที่จะเขียนตรรกะทั้งหมดใน C++ เราสามารถใช้เทมเพลตที่ให้มาซึ่งทำให้การเข้ารหัสง่ายขึ้น

ไวยากรณ์

template <class ratio1, class ratio2> ratio_equal;

พารามิเตอร์

เทมเพลตยอมรับพารามิเตอร์ต่อไปนี้ -

  • อัตราส่วน 1 อัตราส่วน 2 − นี่คืออัตราส่วนทั้งสองที่เราต้องการตรวจสอบว่าเท่ากันหรือไม่

คืนค่า

ฟังก์ชันนี้จะคืนค่า จริง เมื่ออัตราส่วนทั้งสองเท่ากัน มิฉะนั้น ฟังก์ชันจะคืนค่าเป็น เท็จ

ป้อนข้อมูล

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

ผลลัพธ์

ถ้าเรารันโค้ดด้านบน มันจะสร้างผลลัพธ์ต่อไปนี้ -

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

ผลลัพธ์

ถ้าเรารันโค้ดด้านบน มันจะสร้างผลลัพธ์ต่อไปนี้ -

Ratio 1 and Ratio 2 aren’t equal

ตัวอย่าง

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

ผลลัพธ์

ถ้าเรารันโค้ดด้านบน มันจะสร้างผลลัพธ์ต่อไปนี้ -

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