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

ฟังก์ชัน ratio_greater ใน C++

ratio_greater คืออะไร?

ratio_greater เป็นโครงสร้างลักษณะ (type trait) ใน C++ ที่ใช้สำหรับ เปรียบเทียบอัตราส่วน (ratio) ในเวลาคอมไพล์ (compile-time) ฟังก์ชันนี้ตรวจสอบว่าค่าของ ratio1 มากกว่า ratio2 อย่างเคร่งครัด (strictly greater) หรือไม่ ส่งคืนค่าคงที่บูลีน value ซึ่งเป็น true หาก ratio1 มากกว่า ratio2 มิฉะนั้นส่งคืน false

ไวยากรณ์ (Syntax)

template <class R1, class R2> struct ratio_greater;

พารามิเตอร์ (Parameters)

ฟังก์ชันนี้ยอมรับพารามิเตอร์เทมเพลตสองตัวคือ ratio1 และ ratio2 ซึ่งเป็นอัตราส่วนที่ต้องการเปรียบเทียบ

คำอธิบาย typedef

typedef ใช้สำหรับให้ชื่อใหม่กับชนิดข้อมูล ในโปรแกรมนี้เราใช้ typedef เพื่อประกาศอัตราส่วน (ratio) typedef สร้างชื่อสมญานาม (alias) ที่สามารถใช้แทนชื่อชนิดข้อมูลได้ทุกที่ อาจประกาศตัวระบุได้หนึ่งหรือหลายตัวในบรรทัดเดียวกัน และยังสามารถใช้ประกาศชนิดอาร์เรย์ ฟังก์ชัน พอยน์เตอร์ อ้างอิง ชนิดคลาส ฯลฯ

ตัวอย่างการเปรียบเทียบ

Input: 1/2 และ 1/4  Output: 1/2 มากกว่า 1/4 (true)
Input: 1/3 และ 1/2  Output: 1/3 ไม่มากกว่า 1/2 (false)

ตัวอย่างโค้ด

// C++ code to demonstrate the working of ratio_greater
#include <iostream>
#include <ratio>
using namespace std;

int main() {
    // ประกาศอัตราส่วน
    typedef ratio<1, 2> ratio1;
    typedef ratio<1, 4> ratio2;
    // ตรวจสอบ ratio1 มากกว่า ratio2
    if (ratio_greater<ratio1, ratio2>::value)
        cout << "ratio1 มากกว่า ratio2";
    else
        cout << "ratio1 ไม่มากกว่า ratio2";
    cout << " endl";
    return 0;
}

ผลลัพธ์ (Output)

ratio1 มากกว่า ratio2

สรุปความแตกต่าง:

  • ratio_greater - มากกว่าอย่างเคร่งครัด (>)
  • ratio_greater_equal - มากกว่าหรือเท่ากับ (>=)
  • ratio_less - น้อยกว่าอย่างเคร่งครัด (<)
  • ratio_less_equal - น้อยกว่าหรือเท่ากับ (<=)