在MFC中,有CMap相关的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做程序开发比用一些过时的要好得多。
何须浪费时间去知道几个茴字的写法呢。是不是。