Computer >> 컴퓨터 >  >> 프로그래밍 >> C++

C++ STL의 ratio_not_equal() 완벽 가이드: 문법, 동작 원리와 예제

이 글에서는 C++ STL에 포함된 ratio_not_equal 템플릿의 동작 방식, 문법, 그리고 실제 예제를 통해 어떻게 활용할 수 있는지 자세히 알아보겠습니다.

ratio_not_equal 템플릿이란?

ratio_not_equal은 C++ STL에 내장된 템플릿으로, <ratio> 헤더 파일에 정의되어 있습니다. 이 템플릿은 두 비율(ratio)이 서로 같지 않은지, 즉 불일치 여부를 비교하는 데 사용됩니다. 두 개의 매개변수를 받아 해당 비율들이 같지 않은지 검사하며, 예를 들어 1/2와 3/9처럼 서로 다른 값을 가진 비율이 주어지면 참(true)으로 판정합니다. 즉, 두 비율이 불일치할 때 true를 반환합니다.

따라서 두 비율의 불일치 여부를 확인해야 할 때, 복잡한 비교 로직을 직접 작성하는 대신 이 템플릿을 활용하면 코드를 훨씬 간결하고 안전하게 작성할 수 있습니다.

문법(Syntax)

template <class ratio1, class ratio2> ratio_not_equal;

매개변수(Parameters)

이 템플릿은 다음과 같은 매개변수를 받습니다.

  • ratio1, ratio2 − 서로 같지 않은지 확인하고자 하는 두 개의 비율입니다.

반환 값(Return Value)

두 비율이 서로 다르면 true를 반환하고, 두 비율이 같으면 false를 반환합니다.

입력 예시 1

typedef ratio<3, 6> ratio1;
typedef ratio<1, 2> ratio2;
ratio_not_equal<ratio1, ratio2>::value;

출력 결과 1

false

3/6과 1/2는 약분하면 동일한 값이므로 false가 반환됩니다.

입력 예시 2

typedef ratio<3, 9> ratio1;
typedef ratio<1, 2> ratio2;
ratio_not_equal<ratio1, ratio2>::value;

출력 결과 2

true

3/9와 1/2는 서로 다른 값이므로 true가 반환됩니다.

예제 1: 두 비율이 다른 경우

#include <iostream>
#include <ratio>
using namespace std;

int main(){
    typedef ratio<2, 5> R_1;
    typedef ratio<1, 3> R_2;
    // 두 비율이 같은지 확인
    if (ratio_not_equal<R_1, R_2>::value)
        cout<<"Ratio 1 and Ratio 2 aren't equal";
    else
        cout<<"Ratio 1 and Ratio 2 are equal";
    return 0;
}

출력 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

Ratio 1 and Ratio 2 aren't equal

2/5와 1/3은 서로 다른 비율이므로 ratio_not_equal이 true를 반환하여 불일치 메시지가 출력됩니다.

예제 2: 두 비율이 같은 경우

#include <iostream>
#include <ratio>
using namespace std;

int main(){
    typedef ratio<2, 5> R_1;
    typedef ratio<2, 5> R_2;
    // 두 비율이 같은지 확인
    if (ratio_not_equal<R_1, R_2>::value)
        cout<<"Ratio 1 and Ratio 2 aren't equal";
    else
        cout<<"Ratio 1 and Ratio 2 are equal";
    return 0;
}

출력 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

Ratio 1 and Ratio 2 are equal

두 비율이 모두 2/5로 동일하므로 ratio_not_equal이 false를 반환하여 일치 메시지가 출력됩니다.