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?
Antwort
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.
Es hat wunderbar funktioniert, danke! –
Gern geschehen! –
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
}
MSDN helfen soll. – sameerkn