JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.php?sid=6522cdd2259310b98174687d04ad79ffMedaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

STL Map: Funktionsweise und Schlüssel-typen

 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Entwicklung
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Kampfhund
Super JLI'ler


Alter: 42
Anmeldedatum: 20.07.2002
Beiträge: 408

Medaillen: Keine

BeitragVerfasst am: 22.08.2003, 14:50    Titel: STL Map: Funktionsweise und Schlüssel-typen Antworten mit Zitat

Hi,

weiß jemand von euch der sich mit der STL beschäftigt, wie ungefähr
das STL template "map" funktioniert (Innere Funktionsweise)?

Ich habe mir in der MSDN mal ein paar Code Ausschnitte angeschaut,
allerdings habe ich mich nicht so gut zurecht gefunden,
was wahrscheinlich daran liegt, dass ich die STL nie benutzt habe und
daher wenig über sie weiß.

Meine zweite (die eigentliche) Frage ist:
Kann man als Schlüssel zB auch eine Klasse übergeben?
Und wenn ja, muss man dann vergleichsoperatoren o.ä. überladen,
oder wird das alles automatisch von dem template erledigt (glaube ich aber irgendwie nicht)?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
The Lord of Programming
Living Legend


Alter: 37
Anmeldedatum: 14.03.2003
Beiträge: 3122

Medaillen: Keine

BeitragVerfasst am: 22.08.2003, 15:07    Titel: Antworten mit Zitat

Ich vermute mal, dass eine map aus zwei listen oder vectoren besteht.
Dann werden eben in der richtigen Reihenfolge die Elemente gespeichert.

<edit>
Wenn man dann die Wertepaare auslesen will, dann werden die beiden vectoren oder listen durchlaufen, bis der eine Wert gefunden wird. Dann wird der Wert der anderen Liste zurückgegeben, der an der selben Stelle steht.
</edit>

Zur zweiten Frage: Ich denke schon, dass das geht, aber als Schlüssel kannst du dann nur Instanzen von Klassen übergeben.
Code:
class Klasse
{
};

map<Klasse, int> KlassenMap;


Klasse InstanzderKlasse;

KlassenMap[InstanzderKlasse]=10;

_________________
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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Kampfhund
Super JLI'ler


Alter: 42
Anmeldedatum: 20.07.2002
Beiträge: 408

Medaillen: Keine

BeitragVerfasst am: 22.08.2003, 15:20    Titel: Antworten mit Zitat

zur Zweite Frage:

Wie sollen denn die Schlüssel verglichen werden?
Bei den Built in typen ist das ja nicht schwer,
aber wenn ich in der Schlüsselklasse zB 3 membervariablen
drinne habe die garnicht mit verglichen werden sollen?
Man müsste dann ja noch eine methode der klasse implementieren (operator überladen), die zwei Schlüssel vergleicht und sortiert.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Hazel
JLI MVP
JLI MVP


Alter: 40
Anmeldedatum: 19.07.2002
Beiträge: 1761

Medaillen: Keine

BeitragVerfasst am: 22.08.2003, 15:22    Titel: Antworten mit Zitat

Wenn du Algorithmen auf den Container anwenden willst, musst du den Copy-c'tor, den =-Operator und den <-Operator überladen. Und so fügt man neue Wertepaare in den Container ein:

Code:


deineMap.insert(make_pair(schlüssel, wert));


_________________
*click* Dabuu!?
Twitter: http://twitter.com/Ollie_R
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Kampfhund
Super JLI'ler


Alter: 42
Anmeldedatum: 20.07.2002
Beiträge: 408

Medaillen: Keine

BeitragVerfasst am: 22.08.2003, 15:31    Titel: Antworten mit Zitat

@Hazel:

Was meinst du mit algorithem?
Meine eigenen oder die der STL Map?

Meine Frage bezog sich mehr auf eine sortierte map:
Code:

map<int, string, less<int>


Kann die map sortiert weden wenn ich als Schlüssel eine Klasse angebe?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Hazel
JLI MVP
JLI MVP


Alter: 40
Anmeldedatum: 19.07.2002
Beiträge: 1761

Medaillen: Keine

BeitragVerfasst am: 22.08.2003, 16:09    Titel: Antworten mit Zitat

Kampfhund hat Folgendes geschrieben:
zur Zweite Frage:

Wie sollen denn die Schlüssel verglichen werden?
Bei den Built in typen ist das ja nicht schwer,
aber wenn ich in der Schlüsselklasse zB 3 membervariablen
drinne habe die garnicht mit verglichen werden sollen?
Man müsste dann ja noch eine methode der klasse implementieren (operator überladen), die zwei Schlüssel vergleicht und sortiert.


Wie ich gesagt habe... Operatoren überladen.

Und mit Algorithmen meine ich die STL Algorithmen(find, sort, for_each, partition...).
_________________
*click* Dabuu!?
Twitter: http://twitter.com/Ollie_R
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Kampfhund
Super JLI'ler


Alter: 42
Anmeldedatum: 20.07.2002
Beiträge: 408

Medaillen: Keine

BeitragVerfasst am: 22.08.2003, 16:19    Titel: Antworten mit Zitat

ok, dann ist alles klar Smile

thx @ all
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Entwicklung Alle Zeiten sind GMT
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de

Impressum