ในบทความนี้ เราจะพูดถึงการทำงาน ไวยากรณ์ และตัวอย่างของฟังก์ชัน ratio_equal() ใน C++ STL
เทมเพลต Ratio_equal คืออะไร
เทมเพลต Ratio_equal สร้างขึ้นใน C++ STL ซึ่งกำหนดไว้ในไฟล์ส่วนหัว
ดังนั้น เมื่อเราต้องการตรวจสอบความเท่าเทียมกันของอัตราส่วนทั้งสอง แทนที่จะเขียนตรรกะทั้งหมดใน 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");