2016-07-18 4 views
1

Может кто-нибудь, пожалуйста, просветит меня о том, как получить определенный элемент на основе определенного ключа. Скажем, если у меня есть CMap ButtonProp; и теперь я хочу получить доступ к свойству для любой введенной стоимости int, как это сделать? P.S. Первый раз с CMap. Достаточно ли «ButtonProp.Lookup (int)»?Как получить доступ к элементам из CMap?

+0

MSDN должно помочь. – sameerkn

ответ

2

Вы в основном есть два варианта:

Если вы знаете что элемент существует, вы можете использовать CMap::operator[]:

В противном случае, вы должны использовать CMap::Lookup, но использование отличается от таковой в вашем вопросе ,

Предположим, вы начинаете с

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

myMap.InitHashTable(257); 

Чтобы найти элемент, соответствующий 3, вы бы использовать

myMap[3] 

или

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

Если found является true, то ret это ваш ответ.

+0

Он работал чудесно, спасибо! –

+0

Добро пожаловать! –

0

Вот простой фрагмент кода, который демонстрирует использование CMap контейнера:

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 
} 
Смежные вопросы