C++中STL陣列的關係運算符
共有六個關係運算符用於比較相同型別的運算元。它們是 >、<、==、<=、>=、!=。本文包含了在C++中關於STL陣列這些關係運算符的解釋。STL陣列中使用的兩個主要運算子是兩個陣列容器之間的相等比較 (==) 和小於比較 (<)。
相等 (==) 比較從比較雙方陣列的元素開始。從==運算子左側和右側兩個陣列的第一個元素開始,比較在第一個不匹配處停止。
小於 (<) 比較以字典序的方式工作。該演算法類似於std::lexicographic_compare演算法。比較使用運算子 (<) 以互易的方式順序進行(檢查a<b和b<a)。字典序用於字典中按字母順序排序單詞,從第一個字母到最後一個字母。
- a!=b 等價於 !(a==b)
- a>b 等價於 (b<a)
- a<=b 等價於 !(b<a)
- a>=b 等價於 !(a<b)
這些運算子在<array>標頭檔案中被過載。
注意:左側和右側的STL陣列都應該具有相同的引數 <Type,Length>。
比較的**時間複雜度**為線性時間,取決於陣列的大小。**O(n)**
如果條件成立,則返回值為真;否則為假。
示例
#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
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP