Variablenname aus verschiedenen Teilen erstellen
-
Hi,
ich habe gerade ein kleines Problem. Und zwar habe ich ein Struktur für verschiedene Spieler erstellt. Diese rufe ich so auf:spieler Spieler1; spieler Spieler2; spieler Spieler3;Nun erstelle ich eine weitere Variable wer gerade dran ist:
int istdran = 2;Nun möchte ich Spieler"istdran".Name aufrufen.
Wie kann ich dies am besten anstellen?
Danke schonmal für eure Hilfe.
-
pack die spieler doch in einen vector
std::vector<spieler> Spieler; Spieler.push_back(spieler0); Spieler.push_back(spieler1); Spieler.push_back(spieler2); Spieler.push_back(spieler3); istDran = 2; Spieler[2] = /*irgendwas*/;
-
ich möchte ausserdem noch das stichwort array zur lösung solcher probleme mit einbringen.
-
Provoziert da jemand wilde "schmeiß niemals C mit C++ durcheinander!!!!!"- Flames ?

-
@vectoor: Danke ich werde mir Vektoren einmal angucken. Geht das denn mit Strukturen gar nicht?
@player4245: Das ist nicht möglich, da sowohl int als auch string-werte in der Struktur vorkommen.
-
du kannst auch einen vector auf deine struktur machen. Genauso wie das mit arrays geht ;-).
vector<meineStruktur> a; meineStruktur a[10];@vectooor auch in c++ nutzt man noch arrays
-
natürlich benutzt man in c++ noch arrays. und pointer. und printf. und malloc. Allerdings - wenn man schon C++ benutzt - sollte man die sichereren Varianten von C++ benutzen.
Außerdem hat ein array einen entscheidenden Nachteil: Es ist statisch! Was wenn die Anzahl Spieler unbekannt ist?
Dann müsste sein Programm so aussehen:spieler *arr = new spieler [anzahl]; delete [] arr;Und ich denke diese Variante ist - gerade für einen Anfänger - nicht zu empfehlen.
@Zimba92
Du kannst natürlich auch eine Struktur erstellen, die zB einen vector beinhaltet.class AlleSpieler { std::vector<spieler> spieler_vector; public: spieler GetSpieler(size_t t) const { return spieler_vector[t]; } }Aber ein einfacher vector wird in deinem Fall wahrscheinlich reichen.
-
ja aber da er den eindruck machte das er arrays noch nicht kennt wirst du wohl nicht bestreiten dass er mal etwas davon gehört haben sollte. Die Grundlagen sollte man schließlich kennen.
-
player4245 schrieb:
@vectooor auch in c++ nutzt man noch arrays
Ja, aber rohe Arrays eher selten und meist für interne Implementierungen und nicht im alltäglichen Programmieren. Da sind Wrapper wie
std::tr1::arrayeinfach von sehr grossem Vorteil, da sie Objektsemantik besitzen, das STL-Interface anbieten und einen stark beim Debuggen unterstützen.