English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
C ++ operador de conjunto set==é C ++do conjunto setÜberladung nichtmitgliedsfunktion. Esta função é usada para verificar se dois conjuntos são iguais.
Nota: a comparação entre objetos de conjunto é baseada na comparação de pares de elementos. Se dois conjuntos tiverem o mesmo número de elementos e seus elementos correspondentes tiverem valores iguais, então os conjuntos são iguais. Caso contrário, eles são diferentes.
template<class T, class Compare, class Alloc> bool operator==(const set<T, Compare, Alloc>& lhs, const set<T, Compare, Alloc>& rhs);
lhs: o primeiro objeto de conjunto.
rhs: o segundo objeto.
Se o objeto set da esquerda for igual ao objeto set da direita, retorna true, caso contrário, retorna false.
Se o tamanho de lhs e rhs for diferente, a complexidade permanecerá inalterada.
Caso contrário, o comprimento máximo é lhs e rhs.
Sem alterações.
É possível acessar os contêineres lhs e rhs.
Acesso simultâneo aos elementos de um objeto de conjunto não modificado sempre é seguro, o que significa que seus elementos são imutáveis.
Esta função não lança exceções.
Vamos ver um exemplo simples para verificar se dois conjuntos são iguais:
#include <iostream> #include <set> using namespace std; int main() { set<char> m1; set<char> m2; if (m1 == m2) cout << "dois conjuntos são iguais." << endl; m1.emplace('a'); //in the set m1after adding elements if (!(m1 == m2)) cout << "Two sets are not equal." << endl; return 0; }
Saída:
two sets are equal. two sets are not equal.
In the above example, the set m1e m2is empty. Therefore, operator == will return true, and in the set m1after adding an element, m1size will be different from m2size. Therefore, it will return false.
Let's see a simple instance:
#include <set> #include <iostream> int main () { using namespace std; set < int > m1, m2, m3; int i; for (i = 0; i <3; i ++) { m1.insert (i); m2.insert (i * i); m3.insert (i); } if (m1 == m2) cout << "Set m1e m2is equal." << endl; else cout << "Set m1e m2is not equal. if (m1 == m3) cout << "Set m1e m3is equal." << endl; else cout << "Set m1e m3is not equal. return 0; }
Saída:
Set m1e m2is not equal. Set m1e m3They are equal.
Let's see a simple instance:
#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; }
Saída:
1 0
In the above example, if the set s1and s2Equal, then it will return1Otherwise, return 0.
#include <set> #include <iostream> using namespace std; int main () { set<string> m2; typedef set<string> login; m2 = {"xyz@123"} ; //stored password string password; login m1; cout << "---------Login----------"<< endl << endl; cout << "输入密码: \n"; cin >> password; // Get value m1.insert(password); // Put them in set cout << "您输入的密码: \n"; for (auto it = m1.begin(); it != m1.end(); it++) { cout << (*it)<< endl; } cout << "系统中存储的密码 \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; }
Saída:
1). ---------Login---------- Insira a senha: xyz Senha que você inseriu: xyz Senha armazenada no sistema: xyz@123 Senha Incorreta... 2). ---------Login---------- Insira a senha: xyz@123 Senha que você inseriu: xyz@123 Senha armazenada no sistema: xyz@123 Bem-vindo à sua Página...
Existem dois grupos m no exemplo acima1e m2。m1Contém a senha, o segundo grupo m2Armazena a senha inserida pelo usuário. Verifica se os dois conjuntos possuem os mesmos elementos. Se a senha coincidir, o login será bem-sucedido; caso contrário, o login falhará.