Qual è il modo più efficace per ottenere elenchi (come vector
) di chiavi e valori da un unordered_map
?Ottenere l'elenco di chiavi e valori da unordered_map
Per la concretezza, supponiamo che la mappa in questione sia unordered_map<string, double>
. Vorrei quindi ottenere le chiavi come vector<string>
e i valori come vector<double>
.
unordered_map<string, double> um;
vector<string> vs = um.enum_keys();
vector<double> vd = um.enum_values();
posso solo iterare attraverso la mappa e raccogliere il risultato, ma c'è un metodo più efficiente? Sarebbe bello avere un metodo che funzioni anche per la mappa regolare, dato che potrei passare a quello.
Guardando il progetto di norma, non vedo un modo semplice per ottenere quello che vuoi, ma io potrebbe essere manca qualcosa. Si potrebbe dire 'std :: vector> v (map.begin(), map.end()); 'che dovrebbe darti un vettore di coppie chiave-valore. –
@ keith.layne: Sto cercando vettori separati per chiavi e valori. –
Come ho già detto, non c'è niente di integrato in questo. Vedi sotto. –