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