<map> anwenden
-
Hallo zusammen,
ich habe folgendes Problem:
Ich muss Datensetze anhand eines Schlüssels Gruppieren. Für den Datensatz ansich habe ich bereits eine Klasse geschrieben.
Ich wollte das Problem mit <map> lösen.
map<int,vector<Datenobjekt> >::iterator it; //int ist die GruppenIDWie kann ich es jetzt umsetzten, dass ich ein Datenobjekt dem Datenvektor der richtigen Gruppe zuweise?
-
Wo ist das Problem?
#include <map> #include <vector> #include <iostream> #include <string> struct Data { std::string str; Data(const std::string& str_) : str(str_) { } }; typedef std::vector<Data> data_vec_t; typedef std::map<int, data_vec_t> objekt_map_t; int main() { objekt_map_t m; m[10].push_back(Data("A")); m[10].push_back(Data("B")); m[10].push_back(Data("C")); m[5].push_back(Data("A")); for (objekt_map_t::iterator itm = m.begin(); itm != m.end(); ++itm) { std::cout << "--- " << itm->first << " ---\n"; for (data_vec_t::iterator itv = itm->second.begin(); itv != itm->second.end(); ++itv) { std::cout << itv->str << "\n"; } std::cout << "\n"; } return 0; }
-
Vielen, vielen Dank!
War genau das, was ich gebraucht habe.
-
Je nach Einsatzzweck könnte std::multimap besser geeignet sein.
