2016-07-18 10 views
1

Kann mir bitte jemand erklären, wie man ein bestimmtes Element basierend auf einem bestimmten Schlüssel bekommt. Sag wenn ich einen CMap ButtonProp habe; und jetzt möchte ich auf die Eigenschaft für jeden int-Wert zugreifen, wie man das tut? P.S. Das erste Mal mit CMap. Genügt "ButtonProp.Lookup (int)"?Zugriff auf Elemente von einer CMap?

+0

MSDN helfen soll. – sameerkn

Antwort

2

Sie haben grundsätzlich zwei Möglichkeiten:

Wenn Sie wissen , dass das Element vorhanden ist, können Sie CMap::operator[]:

Andernfalls sollten Sie CMap::Lookup verwenden, aber die Nutzung ist anders als die in Ihrer Frage .

Angenommen, Sie mit

CMap<int,int,CPoint,CPoint> myMap; 

myMap.InitHashTable(257); 

starten Sie das Element 3 entspricht, zu finden, Sie

myMap[3] 

oder

CPoint ret; 
bool found = myMap.Lookup(3, ret); 

Wenn found ist true verwenden würde, dann ret ist Antworten.

+0

Es hat wunderbar funktioniert, danke! –

+0

Gern geschehen! –

0

Hier ist der einfache Code-Schnipsel, die die Verwendung von CMap Containern zeigen:

CMap<CString, LPCTSTR, int, int> NameToValueMap; 

CString sKey(_T("Test")); 
int nValue = 10;   
NameToValueMap[sKey] = nValue; 


if (NameToValueMap.IsEmpty()) 
    return; 

int nVal; 
if (NameToValueMap.Lookup(sKey, nVal)) 
{ 
    // TO DO: do stuff with value here 
}