14
e come posso farlo in C++?Posso definire una mappa la cui chiave è una struttura?
e come posso farlo in C++?Posso definire una mappa la cui chiave è una struttura?
È possibile utilizzare qualsiasi tipo di chiave di mappa, purché implementi uno operator<
(oltre ai consueti requisiti di copia e assegnazione per i valori memorizzati nei contenitori).
Per esempio:
struct example { int x; }
bool operator < (const example &l, const example &r) { return l.x < r.x; }
std::map<example, int> values;
In alternativa, si può prevedere una funzione di confronto come il terzo argomento del modello carta invece di definire operator<
. Maggiori dettagli here (parametro Compare
).
"finché implementa un operatore <" - oppure esiste una specializzazione di 'std :: less' per il tipo. 'map' usa' less' di default, e 'less' usa' operator <'di default, quindi ci sono due percorsi in. –