Klasse in Multimap
-
Hallo zusammen
hätte mal wieder eine frage.
wie kann ich auf eine methode einer klasse zugreifen,
die sich in einer multimap befindet??
pos->second.getIrgendwas(); ??gruß elwida
-
std::multimap<Klasse> ClassMMap; std::multimap<Klasse>::iterator Bla = ClassMMap.begin(); Bla->second.Methode();
-
dank dir funktioniert
gruß elwida
-
hi,
ein kleines beispiel:
class Blabla { public: Blabla(){} ~Blabla(){} unsigned long GetANumber(); }; // KEY , Value , Sortierung typdef std::multimap<unsigned long, BlaBla*, std::less < unsigned long > > BlaMap; typdef BlaMap::value_type a_bla_value; BlaMap BlaMapInst; Blabla *BlaBlaInst = new Blabla // So kann man was einfügen BlaMapInst.insert(a_bla_value(0,BlaBlaInst)); BlaMapInst.insert(a_bla_value(1,BlaBlaInst)); BlaMapInst.insert(a_bla_value(2,BlaBlaInst)); BlaMapInst.insert(a_bla_value(3,BlaBlaInst)); BlaMap::iterator pos = BlaMapInst.begin(); // Setze den Iterator auf das erste Element unsigned int aPos; aPos = pos->first; // 0 (der Key hat hier den wert 0) pos++; // Nächstes Element aPos = pos->first; // 1 (der Key hat hier den wert 0) pos++; // Nächstes Element aPos = pos->second->GetANumber(); // Die Funktion aus der Klasse Blabla // in diesem Fall hat der Key den Wert 2! // Und dann kannst du auch noch folgendes machen pos = BlaMapInst.find(0); // Nun enthält pos einen Zeiger auf das Element dem der Key '0' zugewiesen wurde // In diesem Fall ist dies true! if(pos == BlaMapInst.begin()) cout << "TRUE" << endl; else cout << "FLASE" << endl;
Ich hoffe das hat dir einwenig geholfen das zu verstehen
-
LOL, den 2. template-Parameter habe ich glatt vergessen
-
super beispiel danke eViLiSSiMo
gruß elwida