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

C++ logical_and 완벽 가이드: 개념, 문법, 실전 예제

이 글에서는 C++의 logical_and 함수 객체 클래스가 어떻게 동작하는지, 그리고 그 문법과 실제 사용 예제를 자세히 알아보겠습니다.

logical_and란 무엇인가?

logical_and는 C++에 내장된 이진(binary) 함수 객체 클래스로, <functional> 헤더 파일에 정의되어 있습니다. 이 함수 객체는 두 개의 인자를 받아 두 값 사이의 논리 AND 연산 결과를 반환하는 역할을 합니다.

논리 AND는 두 피연산자가 모두 참(true)일 때만 참을 반환하고, 그 외의 경우에는 거짓(false)을 반환하는 이진 연산입니다.

logical_and의 문법

Template struct logical_and : binary_function
{
    T operator() (const T& a, const T& b) const {return a&&b; }
};

템플릿 매개변수

이 함수 객체는 다음 매개변수를 받습니다.

  • T − 함수 호출 시 전달되는 인자의 데이터 타입을 나타냅니다.

사용 예제

#include <bits/stdc++.h>
using namespace std;
int main(){
    bool a[] = { true, false, true, false, true };
    bool b[] = { true, true, false, false, true };
    int ele = 5;
    bool output[ele];
    transform(a, a + ele, b, output, logical_and<bool>());
    cout<<"The result for Logical AND is: \n";
    for (int i = 0; i < ele; i++){
        cout << a[i] << " AND " << b[i] << " is: " <<output[i] << "\n";
    }
    return 0;
}

실행 결과

위 코드를 실행하면 다음과 같은 출력 결과를 얻을 수 있습니다.

The result for Logical AND is:
1 AND 1 is: 1
0 AND 1 is: 0
1 AND 0 is: 0
0 AND 0 is: 0
1 AND 1 is: 1

정리

logical_and는 STL 알고리즘인 transform과 함께 사용하면 두 배열(또는 컨테이너)의 요소들을 손쉽게 비교하여 논리 AND 연산을 수행할 수 있는 강력한 도구입니다. 불리언 값뿐만 아니라 비교 가능한 다양한 타입에도 활용할 수 있어, 조건 조합이나 필터링 로직을 구현할 때 유용하게 사용됩니다.