ratio_greater_equal คืออะไร?
ratio_greater_equal เป็นโครงสร้างลักษณะ (type trait) ใน C++ ที่ใช้สำหรับ เปรียบเทียบอัตราส่วน (ratio) ในเวลาคอมไพล์ (compile-time) ฟังก์ชันนี้ตรวจสอบว่าค่าของ ratio1 มากกว่าหรือเท่ากับ ratio2 หรือไม่ ส่งคืนค่าคงที่บูลีน value ซึ่งเป็น true หาก ratio1 มากกว่าหรือเท่ากับ ratio2 มิฉะนั้นส่งคืน false
ไวยากรณ์ (Syntax)
template <class R1, class R2> struct ratio_greater_equal;
พารามิเตอร์ (Parameters)
ฟังก์ชันนี้ยอมรับพารามิเตอร์เทมเพลตสองตัวคือ ratio1 และ ratio2 ซึ่งเป็นอัตราส่วนที่ต้องการเปรียบเทียบ
คำอธิบาย typedef
typedef ใช้สำหรับให้ชื่อใหม่กับชนิดข้อมูล ในโปรแกรมนี้เราใช้ typedef เพื่อประกาศอัตราส่วน (ratio) typedef สร้างชื่อสมญานาม (alias) ที่สามารถใช้แทนชื่อชนิดข้อมูลได้ทุกที่ สามารถประกาศตัวระบุได้หนึ่งหรือหลายตัวในบรรทัดเดียวกัน และยังสามารถใช้ประกาศชนิดอาร์เรย์ ฟังก์ชัน พอยน์เตอร์ อ้างอิง ชนิดคลาส ฯลฯ
ตัวอย่างการเปรียบเทียบ
Input: 1/3 และ 3/9 Output: 3/9 มากกว่าหรือเท่ากับ 1/3 (true) Input: 4/16 และ 4/16 Output: 4/16 เท่ากับ 4/16 (true)
ตัวอย่างโค้ด
// C++ code to demonstrate the working of ratio_greater_equal
#include <iostream>
#include <ratio>
using namespace std;
int main() {
// ประกาศอัตราส่วน
typedef ratio<10, 100> ratio1;
typedef ratio<1, 10> ratio2;
// ตรวจสอบ ratio1 มากกว่าหรือเท่ากับ ratio2
if (ratio_greater_equal<ratio1, ratio2>::value)
cout << "ratio1 มากกว่าหรือเท่ากับ ratio2";
else
cout << "ratio1 ไม่ใช่มากกว่าหรือเท่ากับ ratio2";
cout << endl;
return 0;
}
ผลลัพธ์ (Output)
ratio1 มากกว่าหรือเท่ากับ ratio2
หมายเหตุ: โค้ดต้นฉบับมีข้อผิดพลาดหลายประการ เช่น include ไฟล์ .h แบบเก่า ตัวพิมพ์ผิด เครื่องหมาย :: ผิด ได้แก้ไขให้ถูกต้องแล้ว