English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Manuale di base di C++

Controllo di flusso di C++

Funzioni in C++

Array e stringhe di C++

Strutture dati di C++

Classi e oggetti di C++

Puntatori in C++

Ereditarietà in C++

Manuale di STL di C++

Manuale di riferimento di C++

Operatore std di C++ < 使用方法及示例

Set (insieme) in STL di C++

Operatore < è un insieme di funzioni di sovraccarico non membri in C++.

Nota: l'operatore < confronta gli elementi dell'insieme in ordine, la comparazione si ferma al primo mismatch.

Sintassi

template<class T, class Compare, class Alloc>
  bool operator< (const set<T,Compare,Alloc>& lhs,
                    const set<T,Compare,Alloc>& rhs);

Parametro

lhs: l'oggetto del primo insieme.

rhs: l'oggetto secondario.

Valore di ritorno

Se l'oggetto set di sinistra è minore dell'oggetto set di destra, restituisce true, altrimenti restituisce false.

Complessità

Se la dimensione di lhs e rhs è diversa, la complessità rimane invariata.

Altrimenti, la lunghezza massima è quella di lhs e rhs.

Validità degli iteratori

Nessuna modifica.

Conflitto dei dati

Si può accedere ai contenitori lhs e rhs.

L'accesso agli elementi di un insieme non modificato è sempre sicuro.

Sicurezza delle eccezioni

Questa funzione non lancia eccezioni.

Esempio 1

Vediamo un esempio semplice, per controllare se il primo insieme è minore di:

#include <iostream>
#include <set>
using namespace std;
int main() {
   set<char> m1;
   set<char> m2;
   m2.emplace('a');
   if (m1 < m2)
      cout << "L'insieme m1 è minore dell'insieme m2." << endl;
   m1 = m2;
   if (!(m1 < m2))
      cout << "L'insieme m1 non è minore dell'insieme m2." << endl;
   return 0;
}

Output:

L'insieme m1 è minore dell'insieme m2.
L'insieme m1 non è minore dell'insieme m2.

Nell'esempio sopra, ci sono due gruppi m1 e m2. m2 contiene un elemento, mentre m1 è vuoto. Quando confrontiamo due insiemi, viene visualizzato il messaggio "L'insieme m1 è minore dell'insieme m2", e dopo aver assegnato m2 a m1, entrambi gli insiemi hanno elementi uguali, quindi viene visualizzato il messaggio "L'insieme m1 non è minore dell'insieme m2".

Esempio 2

Ecco un esempio semplice:

#include <set>  
#include <iostream>  
  
int main ()  
{  
   using namespace std;  
   set<int> m1, m2, m3;  
   int i;  
  
   for (i = 1; i < 3; i++)  
   {  
      m1.insert(i);  
      m2.insert(i * i);  
      m3.insert(i - 1);  
   }  
  
   if (m1 < m2)  
      cout << "L'insieme m1 è minore dell'insieme m2." << endl;  
   else  
      cout << "L'insieme m1 non è minore o uguale all'insieme m2." << endl;  
  
   if (m1 < m3)  
      cout << "L'insieme m1 è minore dell'insieme m3." << endl;  
   else  
      cout << "L'insieme m1 non è minore o uguale all'insieme m3." << endl;  
}

Output:

L'insieme m1 è minore dell'insieme m2.
L'insieme m1 non è minore o uguale all'insieme m3.

Esempio 3

Ecco un esempio semplice:

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

Output:

0
1

Nell'esempio sopra, se l'insieme s1 è minore di s2, restituirà 1, altrimenti restituirà 0.

Esempio 4

#include <set>  
#include <iostream>  
using namespace std; 
  
int main ()  
{  
   set<string> m2;
   typedef set<string> login; 
   
   m2.insert("xyz@123"); // stored 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 << "The password you entered:\n"
     for (auto it = m1.begin(); it != m1.end(); it++) {
        cout << (*it) << endl;
      }
      cout << "The stored password in the system:\n"
     for (auto it = m2.begin(); it != m2.end(); it++) {
        cout << (*it) << endl;
     }
  
   if (m1 < m2)  
        cout << "\nPassword error..." << endl; 
 
   else  
        cout << "\nBenvenuto nella tua pagina..." << endl;
      
      return 0;
}

Output:

1).
---------Login----------
Inserisci la password: 
xyz@123
Password inserita da te: 
xyz@123
Password memorizzata nel sistema :
xyz@123
Benvenuto nella tua pagina...
2).
---------Login----------
Inserisci la password: 
abc@123
Password inserita da te: 
abc@123
Password memorizzata nel sistema:
xyz@123
Password errata...

Nell'esempio sopra, ci sono due gruppi m1 e m2. m1 contiene la password, il secondo gruppo m2 memorizza la password inserita dall'utente. Verifica se m1 è minore di m2. Se la password m1 non è minore di m2, il login è successo, altrimenti il login è fallito.

Set (insieme) in STL di C++