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);
Twój kompilator nie może obsługiwać dwa kątowniki zamykające jest tuż obok siebie jeszcze, więc może trzeba std::map<int,std::list<int> > my_map
.
z C++ 11 my_map
można zainicjować bardziej efektywnie:
std::map<int,std::list<int>> my_map {{10, {10000,20000,40000}}};
Ponadto, jeśli chcesz po prostu sposób, aby przechowywać wiele wartości na klucz, można użyć std :: multimap.
std::multimap<int,int> my_map;
my_map.insert(std::make_pair(10,10000));
my_map.insert(std::make_pair(10,20000));
A w C++ 11 może to być napisane:
std::multimap<int,int> my_map {{10,10000},{10,20000}};
"wspomnianych danych może mieć mulitple typy" ... jest '' lista tylko jeden z tych typów? Czy masz na myśli, że chcesz mieć 'list', która przechowuje instancje typów innych niż tylko' int'? –
Pablo
Żadne dane nie będą miały wielu wystąpień, więc wszystkie te instancje, które chcę zapisać na liście na podstawie ich identyfikatora (który będzie wartością kluczową) Aby objaśnić więcej, na przykład jako jeden z moich danych ma ID "10" ta wartość jest umieszczona w kluczu z mAllData, to te dane ID mogą mieć instancje ID powiedzmy 10000,200000,40000, więc chcę tylko utworzyć listę tych instancji i zachować ją z identyfikatorem danych. – user987316
Nie bardzo rozumiem twoje pytanie, ani twój komentarz. Czy chcesz, aby identyfikator miał wiele wartości? Czy chcesz, aby identyfikator miał wiele wartości, z których każda ma różne typy? – Marlon