Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
VerruecktesHuhn Super JLI'ler
Anmeldedatum: 30.07.2002 Beiträge: 492 Wohnort: Stuttgart Medaillen: Keine
|
Verfasst am: 18.02.2004, 14:16 Titel: Design problem |
|
|
Hi!
Ich hab ein kleines Designproblem: Ich will verschiedene Objekte in einem Vektor anordnen, dieser Vektor wird in jedem Frame neu sortiert. Dennoch will ich eine möglichkeit haben, sofort und ohne schleifen zu wissen, wo sich ein bestimmtes Objekt befindet.
Ich hab mir das so gedacht:
Ich hab meinen Vektor:
std::vector<Objekt> vcVektor;
Und zudem hab ich ein statisches Feld von zeigern auf die Objekte:
Object*[NUM_ELEMENTS] arFeld;
Wenn ich nun ein neues Objekt hinzufügen will, dann füg ich es normal zum vektor hinzu, such mir einen freien Platz in meinem Zeiger feld und lass diesen auf das letzte Objekt im Vektor zeigen (denn das ist ja NOCH das neue objekt) und merk mir dann nur noch die Stelle des Zeigers im Feld. Wenn ich nun den Vektor ein paarmal umsortiere, dann stell ich mir das so vor, dass ich nun einfach über den Zeiger, von dem ich ja weis wo er ist, auf das Objekt zugreife.
Jetzt meine Fragen:
a) Kann das klappen? (Ich will das nicht ausprobieren, da ich mich mit den vektoren nicht so gut auskenne und bei einem möglichen Fehler nicht weis, ob das an dem system liegt oder nicht).
b) Kennt ihr ein besseres System?
c) Habt ihr mein Problem verstanden?
Vielen Dank fürs durchlesen! |
|
Nach oben |
|
|
Fallen JLI MVP
Alter: 40 Anmeldedatum: 08.03.2003 Beiträge: 2860 Wohnort: Münster Medaillen: 1 (mehr...)
|
Verfasst am: 18.02.2004, 14:32 Titel: |
|
|
Das würde bedeuten das die Menge deiner Objekte begrenzt ist es sei denn du vergrösserst dein statisches Feld.
Ich kann mir auch nicht vorstellen wir du dann dein gesuchtes Objekt finden willst nur nach der IndexNummer ? Das ist aber ziemlich seltsam. _________________ "I have a Core2Quad at 3.2GHz, 4GB of RAM at 1066 and an Nvidia 8800 GTS 512 on Vista64 and this game runs like ass whereas everything else I own runs like melted butter over a smokin' hot 18 year old catholic schoolgirl's arse." |
|
Nach oben |
|
|
xardias JLI Master
Alter: 38 Anmeldedatum: 28.12.2003 Beiträge: 804 Wohnort: Palo Alto, CA Medaillen: Keine
|
Verfasst am: 18.02.2004, 15:10 Titel: |
|
|
du könntest eine std::map benutzen.
std::map<cObject, std::string> m_objekte;
dann kannst du über objekte["gegner1"] auf den gegner zugreifen. Ist nicht die schnellste alternative aber am praktischsten |
|
Nach oben |
|
|
Hazel JLI MVP
Alter: 39 Anmeldedatum: 19.07.2002 Beiträge: 1761
Medaillen: Keine
|
Verfasst am: 18.02.2004, 16:29 Titel: |
|
|
Oder mit zwei Vectors:
Code: |
vector<meep> objectsVec; // deine Objekte
vector<meep> sortedVec; // gleicher Inhalt aber sortiert
|
_________________ *click* Dabuu!?
Twitter: http://twitter.com/Ollie_R
|
|
Nach oben |
|
|
|