Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++의 STL 배열에 대한 관계 연산자

<시간/>

같은 유형의 피연산자를 비교하기 위한 6개의 관계 연산자가 있습니다.>, <,==, <=,>=, !=입니다. 이 문서에는 C++의 STL 배열에 대한 이러한 관계 연산자에 대한 설명이 포함되어 있습니다. STL 배열에 사용되는 두 가지 주요 연산자는 두 배열 컨테이너 간의 동등 비교(==)와 작음 비교(<)입니다.

같음(==) 비교는 양쪽 배열의 요소 비교를 시작합니다. ==연산자의 L.H.S 및 R.H.S에 있는 두 배열의 첫 번째 요소에서 시작하여 첫 번째 불일치에서 비교가 중지됩니다.

보다 작음(<) 비교는 사전식 방식으로 작동합니다. 알고리즘은 std::lexicographic_compare 알고리즘처럼 작동합니다. 비교는 operator(<)를 사용하여 순차적으로 작동합니다(a

  • a!=b는 !(a==b)와 동일합니다.
  • a>b는 (b 와 동일합니다.
  • a<=b는 !(b 와 동일합니다.
  • a>=b는 !(a 와 동일합니다.

이러한 연산자는

배열에 오버로드됩니다.

참고:두 STL 어레이 모두 L.H.S. 및 R.H.S. 매개변수가 동일해야 합니다.

시간 복잡성 비교 횟수는 선형 시간이며 배열의 크기에 따라 다릅니다. O(n)

조건이 충족되면 반환 값은 true이고 그렇지 않으면 false입니다.

예시

#include <iostream>
#include <stdio.h>
#include <array>
using namespace std;
int main(){
   // declaration of array
   array<int, 5> marks1 = { 10,20,30,40,50 };
   array<int, 5> marks2 = { 100,200,300,400,500 };
   array<int, 5> marks3 = { 10,20,30,40,50 };
   //a>=b is equivalent to !(a<b) as shown
   if (marks1 >= marks2){
       cout << "Marks1 is greater than equal to Marks2\n";
   }
   else{
      cout << "Marks1 is neither greater nor equal to Marks2\n";
   }
   if (!(marks1 < marks2)){
      cout << "Marks1 is greater than equal to Marks2\n";
   }
   else{
      cout << "Marks1 is neither greater nor equal to Marks2\n";
   }
   //a<=b is equivalent to !(a>b) as shown
   if (marks1 <= marks2){
      cout << "Marks1 is less than equal to Marks2\n";
   }
   else{
      cout << "Marks1 is neither less nor equal to Marks2\n";
   }
   if (!(marks1 > marks2)){
       cout << "Marks1 is less than equal to Marks2\n";
   }
   else{
      cout << "Marks1 is neither less nor equal to Marks2\n";
   }
   //a!=b is equivalent to !(a==b) as shown
   if (marks1 != marks3){
      cout << "Marks1 is not equal to Marks2\n";
   }
   else{
      cout << "Marks1 is equal to Marks2\n";
   }
   if (!(marks1 == marks3)){
      cout << "Marks1 is not equal to Marks2\n";
   }
   else{
      cout << "Marks1 is equal to Marks2\n";
   }
   return 0;
}

출력

Marks1 is neither greater nor equal to Marks2
Marks1 is neither greater nor equal to Marks2
Marks1 is less than equal to Marks2
Marks1 is less than equal to Marks2
Marks1 is equal to Marks2
Marks1 is equal to Marks2