Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Jonathan_Klein Living Legend
Alter: 37 Anmeldedatum: 17.02.2003 Beiträge: 3433 Wohnort: Siegerland Medaillen: Keine
|
Verfasst am: 12.07.2004, 14:02 Titel: STL-map komplett durchlaufen |
|
|
ich hab eine Map mit dynamischen Objekten. Um die wieder freizugeben müsste ich nicht nur auf ein bestimmtes Objekt zugreifen können sondern müsste sie ähnlich wie eine STL-list durchlaufen. Weiß jemand wie das geht? _________________ https://jonathank.de/games/ |
|
Nach oben |
|
|
The Lord of Programming Living Legend
Alter: 37 Anmeldedatum: 14.03.2003 Beiträge: 3122
Medaillen: Keine
|
Verfasst am: 12.07.2004, 14:16 Titel: |
|
|
Ganz normal mit dem Iterator wie bei einer List
Wenn du auf die Elemente zugreifen willst, dann gibts dafür die Methoden First() und Second().
Code: | map<int,string>::iterator it=foo.begin();
for(blabla)
{
//Gibt den Integer zurück
it-First();
//Gibt den String zurück
it->Second();
}
|
_________________ www.visualgamesentertainment.net
Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
(1) Realtime Developer Testing and Debugging Console
Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
Hilf Schäuble! Damit er auch was findet... |
|
Nach oben |
|
|
Jonathan_Klein Living Legend
Alter: 37 Anmeldedatum: 17.02.2003 Beiträge: 3433 Wohnort: Siegerland Medaillen: Keine
|
|
Nach oben |
|
|
Jonathan_Klein Living Legend
Alter: 37 Anmeldedatum: 17.02.2003 Beiträge: 3433 Wohnort: Siegerland Medaillen: Keine
|
Verfasst am: 14.07.2004, 15:58 Titel: |
|
|
Code: |
map<char*, Sound>::iterator Iterator;
Iterator=m_SecSoundBuffers.begin();
Sound * MapElement=NULL;
for(int i=0; i<m_SecSoundBuffers.size(); i++)
{
MapElement=Iterator->Second();
Iterator++;
}
|
Die Fehlermeldung:
Code: |
D:\C++\Audio\CDirectAudio.cpp(19) : error C2039: 'Second' : Ist kein Element von 'pair<char * const,struct Sound>'
|
Tja, was jetzt? _________________ https://jonathank.de/games/ |
|
Nach oben |
|
|
The Lord of Programming Living Legend
Alter: 37 Anmeldedatum: 14.03.2003 Beiträge: 3122
Medaillen: Keine
|
Verfasst am: 14.07.2004, 16:03 Titel: |
|
|
Oh, sorry.
Ich glaube, man muss das second/first kleinschreiben _________________ www.visualgamesentertainment.net
Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
(1) Realtime Developer Testing and Debugging Console
Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
Hilf Schäuble! Damit er auch was findet... |
|
Nach oben |
|
|
Jonathan_Klein Living Legend
Alter: 37 Anmeldedatum: 17.02.2003 Beiträge: 3433 Wohnort: Siegerland Medaillen: Keine
|
Verfasst am: 14.07.2004, 17:06 Titel: |
|
|
Code: |
MapElement=&Iterator->second;
|
So scheints zu gehen, 0 Fehler, Danke nochmal _________________ https://jonathank.de/games/ |
|
Nach oben |
|
|
The Lord of Programming Living Legend
Alter: 37 Anmeldedatum: 14.03.2003 Beiträge: 3122
Medaillen: Keine
|
Verfasst am: 14.07.2004, 20:02 Titel: |
|
|
No Prob
Aber bist du sicher, dass es auch von der Semantik her stimmt?
Müsste das was du geschrieben hast nicht die Adresse des zweiten Teils der Map zurückgeben?
Normal müsste es auch ohne das '&' funktionieren... _________________ www.visualgamesentertainment.net
Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
(1) Realtime Developer Testing and Debugging Console
Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
Hilf Schäuble! Damit er auch was findet... |
|
Nach oben |
|
|
fowly JLI'ler
Anmeldedatum: 25.01.2004 Beiträge: 196 Wohnort: Detmold - NRW Medaillen: Keine
|
|
Nach oben |
|
|
Cyianor Super JLI'ler
Anmeldedatum: 23.12.2002 Beiträge: 452
Medaillen: Keine
|
Verfasst am: 15.07.2004, 11:37 Titel: |
|
|
Entweder
oder einfacher
|
|
Nach oben |
|
|
Jonathan_Klein Living Legend
Alter: 37 Anmeldedatum: 17.02.2003 Beiträge: 3433 Wohnort: Siegerland Medaillen: Keine
|
Verfasst am: 15.07.2004, 14:18 Titel: |
|
|
OK, noch ne Frage. Wie kann ich testen ob ein Map Objekt schon existiert? _________________ https://jonathank.de/games/ |
|
Nach oben |
|
|
Christian Rousselle Site Admin
Alter: 48 Anmeldedatum: 19.07.2002 Beiträge: 1630
Medaillen: Keine
|
Verfasst am: 15.07.2004, 17:30 Titel: |
|
|
Mit find(). |
|
Nach oben |
|
|
Samus_Aran JLI'ler
Alter: 37 Anmeldedatum: 12.05.2004 Beiträge: 183 Wohnort: Plauen->des liegt in Sachsen in der nähe von Chemnitz und Zwickau Medaillen: Keine
|
Verfasst am: 15.07.2004, 17:45 Titel: |
|
|
ich denk ma des passt hier ma kurz nebenbei besser rein als n neuen tread aufzumachen.
Meine Frage wie kann ich Ne STL list ordnen lassen (so kleinster bis gröster wert)
und wenn ich ein objekt aus der liste löschen will geht das dann auch mitttels ...->find()??? |
|
Nach oben |
|
|
Christian Rousselle Site Admin
Alter: 48 Anmeldedatum: 19.07.2002 Beiträge: 1630
Medaillen: Keine
|
Verfasst am: 15.07.2004, 19:22 Titel: |
|
|
es gibt std::sort() dazu müssen die Elemente in der Liste aber einen < operator definieren. Das ist bei einfachen Dateitypen immer der Fall. Löschen geht mit remove() oder erase() - schau mal in die MSDN Hilfe.
C. |
|
Nach oben |
|
|
Samus_Aran JLI'ler
Alter: 37 Anmeldedatum: 12.05.2004 Beiträge: 183 Wohnort: Plauen->des liegt in Sachsen in der nähe von Chemnitz und Zwickau Medaillen: Keine
|
Verfasst am: 15.07.2004, 19:24 Titel: |
|
|
Ich danke |
|
Nach oben |
|
|
Jonathan_Klein Living Legend
Alter: 37 Anmeldedatum: 17.02.2003 Beiträge: 3433 Wohnort: Siegerland Medaillen: Keine
|
Verfasst am: 17.07.2004, 15:07 Titel: |
|
|
OK, nach langer Suche in der MSDN (335 Suchergebnisse, stöhn) weiß ich wie find() funktioniert:
CPP: | list<int, int> Liste;
if(Liste.find(5)==Liste.end()) //Element existiert nicht
if(Liste.find(5)!=Liste.end()) //Element existiert schon
|
_________________ https://jonathank.de/games/ |
|
Nach oben |
|
|
|