C++ std operator>=操作符
C++ std Operator >=是 C++ 中集合的非成员重载函数 。该函数用于检查第一个集合是否大于或等于另一个集合。
注意:操作符>=会按顺序比较集合的元素,并在第一次出现不匹配时停止比较。
语法
template <class T, class Compare, class Alloc>
bool operator>= ( const set<T,Compare,Alloc>& lhs,
const set<T,Compare,Alloc>& rhs );
参数
lhs : 第一个集合对象。
rhs : 第二个集合对象。
返回值
如果集合容器对象的左边大于或等于右边,则返回true,否则返回false。
复杂度
如果lhs和rhs的大小不同,则复杂度为常数。
否则,复杂度与lhs和rhs的大小成线性关系。
迭代器有效性
没有改变。
数据竞争
容器lhs和rhs被访问。
并发访问未修改的集合元素总是安全的。
异常安全
该函数不会抛出异常。
示例1
让我们来看一个简单的示例,检查第一个集合是否大于或等于第二个集合:
#include <iostream>
#include <set>
using namespace std;
int main() {
set<char> m1;
set<char> m2;
m1.emplace('a');
m2.emplace('a');
if (m1 >= m2)
cout << "Set m1 is greater than or equal to m2." << endl;
m2.emplace('b');
if (!(m1 >= m2))
cout << "Set m1 is not greater than or equal to m2." << endl;
return 0;
}
输出:
Set m1 is greater than or equal to m2.
Set m1 is not greater than or equal to m2.
在上面的示例中,有两个集合m1和m2。m1和m2各包含一个元素。当我们比较这两个集合时,会显示消息“集合m1大于等于m2”,当将一个元素添加到m2后,会显示消息“集合m1不大于等于m2”。
示例2
让我们来看一个简单的示例:
#include <set>
#include <iostream>
using namespace std;
int main( )
{
set < int > m1, m2, m3, m4;
int i;
for ( i = 1 ; i < 3 ; i++ )
{
m1.insert ( i );
m2.insert (i * i );
m3.insert ( i - 1 );
m4.insert ( i );
}
if ( m1 >= m2 )
cout << "Set m1 is greater than or equal to set m2." << endl;
else
cout << "The set m1 is less than the set m2." << endl;
if ( m1 >= m3 )
cout << "Set m1 is greater than or equal to set m3." << endl;
else
cout << "The set m1 is less than the set m3." << endl;
if ( m1 >= m4 )
cout << "Set m1 is greater than or equal to set m4." << endl;
else
cout << "The set m1 is less than the set m4." << endl;
return 0;
}
输出:
The set m1 is less than the set m2.
Set m1 is greater than or equal to set m3.
Set m1 is greater than or equal to set m4.
示例3
让我们看一个简单的示例:
#include <iostream>
#include <set>
using namespace std;
int main ()
{
set < int > s1 , s2 ;
s1 . insert ( 10 );
s1 . insert ( 20 );
s1 . insert ( 30 );
s2 = s1 ;
cout << ( s1 >= s2 ) << endl ;
s2 . insert ( 40 );
cout << ( s1 >= s2 ) << endl ;
}
输出:
1
0
在上面的示例中,如果m1大于或等于m2,则返回1,否则返回0。
示例4
#include <set>
#include <iostream>
using namespace std;
int main ()
{
set<string> m2;
typedef set<string> login;
m2 = {"xyz@123"} ; //stored id and password
string password;
login m1;
cout<<"---------Login----------"<<endl<<endl;
cout<<"Enter password: \n";
cin>> password; // Get value
m1.insert(password); // Put them in set
cout<<"Password you have entered: \n";
for (auto it = m1.begin(); it != m1.end(); it++) {
cout << (*it)<< endl;
}
cout<<"Password stored in the system :\n";
for (auto it = m2.begin(); it != m2.end(); it++) {
cout << (*it)<< endl;
}
if (m1 >= m2)
cout << "\nWelcome to your Page..." << endl;
else
cout << "\nIncorrect Password..." << endl;
return 0;
}
输出:
1).
---------Login----------
Enter password:
xyz@123
Password you have entered:
xyz@123
Password stored in the system :
xyz@123
Welcome to your Page...
2).
---------Login----------
Enter password:
abc@122
Password you have entered:
abc@122
Password stored in the system :
xyz@123
Incorrect Password...
在上面的示例中,有两个集合m1和m2。m1包含存储的密码,第二个集合m2存储用户输入的密码。它检查m1是否大于或等于m2。如果m1的密码大于或等于m2,则登录成功,否则登录失败。