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