Computer >> Máy Tính >  >> Lập trình >> C ++

Toán tử quan hệ trên mảng STL trong C ++

Có sáu toán tử quan hệ để so sánh các toán hạng cùng loại. Đây là>, <, ==, <=,> =,! =. Bài viết này chứa các giải thích về các toán tử quan hệ này trên mảng STL trongC ++. Hai toán tử chính được sử dụng trong mảng STL là so sánh bình đẳng (==) và so sánh nhỏ hơn (<) giữa hai vùng chứa mảng.

Phép so sánh bằng (==) bắt đầu so sánh các phần tử của cả hai mảng ở hai bên. Bắt đầu từ các phần tử đầu tiên của cả hai mảng trên L.H.S và R.H.S của toán tử ==, phép so sánh dừng lại ở điểm không khớp đầu tiên.

So sánh nhỏ hơn (<) hoạt động theo cách thức từ vựng. Thuật toán hoạt động giống như thuật toán std ::lexicographic_compare. So sánh hoạt động tuần tự bằng cách sử dụng toán tử (<) theo cách tương hỗ (kiểm tra a

  • a! =b tương đương với! (a ==b)
  • a> b tương đương với (b
  • a <=b tương đương với! (b
  • a> =b tương đương với! (a

Các toán tử này được nạp chồng trong mảng

.

Lưu ý:Cả hai mảng STL trên L.H.S. và R.H.S. phải có các tham số giống nhau .

Độ phức tạp về thời gian so sánh là thời gian tuyến tính và phụ thuộc vào kích thước của các mảng. O (n)

Giá trị trả về là true nếu các điều kiện giữ nguyên hoặc false nếu ngược lại.

Ví dụ

#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;
}

Đầu ra

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