Map operators
Da cppreference.com.
Sintassi:
#include <map> mapped_type& operator[]( const key_type& key ); map& operator=(const map& c2); bool operator==(const map& c1, const map& c2); bool operator!=(const map& c1, const map& c2); bool operator<(const map& c1, const map& c2); bool operator>(const map& c1, const map& c2); bool operator<=(const map& c1, const map& c2); bool operator>=(const map& c1, const map& c2);
Le mappe possono essere confrontate ed assegnate l'una all'altra con gli operatori standard:==, !=, <=, >=, <, >, and =. Elementi individuali di una mappa possono essere esaminati con l'operatore [].
Fare un confronto o assegnare una mappa ad un'altra avviene a tempo lineare.
Due mappe sono uguali se sono vere entrambe le seguenti condizioni:
- Hanno uguale dimensione
- Ogni membro nella locazione i di una mappa è uguale al membro nella posizione i dell'altra.
Il confronto tra mappe avviene in modo lessicografico.
Il codice che segue definisce una mappa tra stringhe ed interi e carica i valori nella mappa usando l'operatore []:
struct strCmp { bool operator()( const char* s1, const char* s2 ) const { return strcmp( s1, s2 ) < 0; } }; map<const char*, int, strCmp> ages; ages["Homer"] = 38; ages["Marge"] = 37; ages["Lisa"] = 8; ages["Maggie"] = 1; ages["Bart"] = 11; cout << "Bart is " << ages["Bart"] << " years old" << endl; cout << "In alphabetical order: " << endl; for( map<const char*, int, strCmp>::iterator iter = ages.begin(); iter != ages.end(); ++iter ) { cout << (*iter).first << " is " << (*iter).second << " years old" << endl; }
Una volta lanciato il codice stampa sull'output questi messaggi:
Bart is 11 years old
In alphabetical order:
Bart is 11 years old
Homer is 38 years old
Lisa is 8 years old
Maggie is 1 years old
Marge is 37 years old
Argomenti correlati: insert, map_constructors