std::map<int,std::list<int>> my_map;
my_map[10].push_back(10000);
my_map[10].push_back(20000);
my_map[10].push_back(40000);
il compilatore potrebbe non supportare le due parentesi angolari di chiusura che sono proprio accanto all'altro ancora, quindi potrebbe essere necessario std::map<int,std::list<int> > my_map
.
Con C++ 11 my_map
può essere inizializzato in modo più efficiente:
std::map<int,std::list<int>> my_map {{10, {10000,20000,40000}}};
Inoltre, se si desidera solo un modo per memorizzare più valori per tasto, è possibile utilizzare std :: multimap.
std::multimap<int,int> my_map;
my_map.insert(std::make_pair(10,10000));
my_map.insert(std::make_pair(10,20000));
E in C++ 11 questo può essere scritto:
std::multimap<int,int> my_map {{10,10000},{10,20000}};
"ha detto dati potrebbero avere tipi mulitple" ... è '' lista solo uno di quei tipi? O vuoi dire che vuoi avere un 'elenco' che memorizza istanze di tipi diversi da solo' int'? –
Pablo
Nessun dato avrà più istanze, quindi tutte le istanze che voglio memorizzare in un elenco rispetto al suo ID (che sarà il valore chiave) Per spiegarlo meglio prendi ad esempio come uno dei miei dati ha l'ID "10" questo valore sarà nella chiave di mAllData quindi questi dati di ID possono avere istanze di ID dire 10000,200000,40000 quindi voglio solo fare un elenco di queste istanze e tenerlo con il suo ID di dati. – user987316
Non capisco la tua domanda né il tuo commento. Stai dicendo che vuoi un ID per avere più valori? O vuoi che un ID abbia più valori ciascuno con tipi diversi? – Marlon