Hilfe, ich verstehe CMap einfach nicht.
-
Ich versteh CMap einfach nicht. Wozu ist CMap gut,
wann braucht man das? Ist es eine Art Array oderso?Constructs a collection that maps keys to values.
-
Man kann mit einem Schlüssel auf einen Wert zugreifen.
-
CStarter schrieb:
Constructs a collection that maps keys to values.
Erzeugt eine Liste, welche ein Schlüssel einem Wert abbildet...
Fazit: Wenn Du z.B. eine Liste mit Personalnummern hast, dann kannst Du in einem CMap die Zuordnung <Personalnummer> zu Personal-Objekt machen... (oder was auch immer). Somit kannst Du anhand der Personalnummer sehr schnell das passende Objekt finden
-
Hab ich das so richtig umgesetzt?
int ie=9; CString csX="dies ist der Wert von ie, also = 9"; CString csmeinwert; CMap<int,int,CString,CString> myMap; myMap.SetAt(ie,csX); myMap.Lookup(ie,csmeinwert); MessageBox(csmeinwert);
-
Wird wohl
-
der vorteil von CMap ist, wenn du, wie in deinem beispiel, integers als schluessel verwendest und du nur 3 werte belegst (zB 1, 5 und 2000), dann reserviert er nur 3*32 bit speicherplatz (beim normalen array waeren es dann 32*2000 bit).
weiterer vorteil: du kannst nahezu beliebige variablen als schluessel benuzten.
nochein vorteil: das ding hat praktisch einen integrierten hash-table, mit dem ziemlich schnell der passende inhalt zum entsprechenden schluessel gefunden wird.beispiel: du hast ein treeview und moechtest mit jedem treeview-item eines deiner objekte verknuepfen; dazu stopfst du deine objekte in die map, der schluessel dazu ist das HTREEITEM, das dir der treeview zurueckgibt, wenn du ein item anlegst. wenn du jetzt auf ein item im baum klickst, dann holst du dir das HTREEITEM ab und uebergibst das der map, welches dir dann dein zugehoeriges objekt herausrueckt. waere mit einem array ohne riesenaufwand nicht moeglich.
Esco