在MFC中,有CMap相關(guān)的map類, 在 map中有map。
// Maps (aka Dictionaries)
class CMapWordToOb; // map from WORD to CObject*
class CMapWordToPtr; // map from WORD to void*
class CMapPtrToWord; // map from void* to WORD
class CMapPtrToPtr; // map from void* to void*
// Special String variants
class CMapStringToPtr; // map from CString to void*
class CMapStringToOb; // map from CString to CObject*
class CMapStringToString; // map from CString to CString
對于以上可以直接用stl中的一個map類型全部概況。
map<Word, CObject*>
map<Word, void*>
map<void*, Word>
map<void*, void*>
map<CString,void*>
map<CString, CObject*>
map<CString, CString>
由此,還是map簡練。
再看遍歷時,各個處理如下:
CMap<DWORD, DWORD&, ThreadInfo, ThreadInfo&> m_threadMap; //定義一組線程map
則在
ThreadInfo info;
DWORD Key ;
POSITION pos = threadMap.GetStartPosition();
while (pos != NULL)
{
threadMap.GetNextAssoc(pos, Key, info);
{
。。。
}
}
如果采用std中的map處理則
map<DWORD ,ThreadInfo>m_threadMap;
map<DWORD ,ThreadInfo>::iteraotr pIt;
for(pIt = m_threadMap.begin(); pIt != m_threadMap.end(); pIt++){
......
}
簡單明了,勝過用mfc中繁蕪而又不清晰的過程。所以多用std做程序開發(fā)比用一些過時的要好得多。
何須浪費時間去知道幾個茴字的寫法呢。是不是。