Array["irgendwas"]=(struct)
-
Hallo,
ist es möglich einem Vector eine Indizierung per String oder Char zu verpassen, so wie es zum Beispiel bei der StringList möglich ist?
Mit StringList kann ich nicht arbeiten, da an dem Vector ein KLasse dran hängt.Mir erscheints sinnvoll, wenn der Vector von der CControl-KLasse über den Namen des Programmes anzusprechen wäre.
Gruss, Sven
class CProgram { public: String Name; String Executable; String Directory; String Parameter; std::vector<CWindow> Window; //array }; class CControl { public: std::vector<CProgram> Program; //array };
-
oder ganz anders,
ich brauche eine Struktur, die nach möglichkeit so funktioniert:
Program.Add("name","exe",..);
n=Program[i].Name;
e=Program[i].Executable;
Program[i].Window.Add("wname");
n=Program[i].Window[x].Name;Hat da jemand 'ne Idee oder einen Link dazu?
Sven
-
Wenn ich dich richtig verstanden habe, suchst du sowas wie ein assoziatives Array, wies es in PHP gibt? std::map wäre in dem Fall dein Freund.
-junix
-
ja genau,
aber es sollte als Wert halt ein Zeiger auf ein Struct übergeben werden.
die Maps hab ich mir gestern schon mal angeschaut, aber so richtig schlau werd ich nicht daraus...
-
junix schrieb:
...suchst du sowas wie ein assoziatives Array, wies es in PHP gibt? std::map wäre in dem Fall dein Freund.
hi - ich bin auch auf der suche nach sowas. in PHP komm ich damit gut zurecht *g*
wie sähe denn so ein assoziatives Array in c++ aus? mit std::map kann ich nix anfengen (da bin ich noch n00b)

-
hm
vielleicht ein kleines Beispiel:map<string,double> konto; konto["Andreas"]=2000.00; konto["Anja"]=1000.00; for(map<string,double>::const_iterator iter=konto.begin();iter!=konto.end();++iter) { cout << iter->first << "Betrag: "<< iter->second << endl; }
-
Danke für die Antwort.
Ist aber noch immer noch etwas zu hoch für einen n00b

#include <map> //müsste doch noch rein?!?und er gibt mir immer Fehler bei:
map<string, char*> matrix; matrix["D"] = 'test'; matrix["E"] = 'test'; matrix["T"] = 'test';Fehler heißt: matrix01.h invalid conversion from `int' to `char*'
und dass muss ich noch irgendwie in eine 2 oder 3d matrix bringen

-
Hallo,
Schau dir mal deine Stringkonstanten genau an (Stichwort Hochkommata). Desweiteren würde ich in eine map lieber keine char* einspeichern. Warum nimmst du dafür nicht auch std::string.
Beispiel:map<string, string> matrix; matrix["D"] = "test"; matrix["E"] = "test"; matrix["T"] = "test";Ciao