- // 创建MapStringToPtr
- CMapStringToPtr m_prjFiles;
- CStringList m_fileList;
- m_fileList.AddTail(_T("C:\\a"));
- m_fileList.AddTail(_T("C:\\b"));
- m_fileList.AddTail(_T("C:\\c"));
- // 遍历CStringList变量,添加到CMapStringToPtr
- for(POSITION pos=m_fileList.GetHeadPosition();pos;m_fileList.GetNext(pos)){
- ST_LINE_INFO* fi=new ST_LINE_INFO; // 一个自定义的结构,定义了strPath变量
- fi->strPath=m_fileList.GetAt(pos);
- void* rVal=NULL;
- if(m_prjFiles.Lookup(fi->strName,rVal)){
- delete fi;
- fi = NULL;
- }else{
- m_prjFiles.SetAt(fi->strName,fi);
- }
- }
- // 释放MapStringToPtr
- for(POSITION pos=m_prjFiles.GetStartPosition();pos;){
- CString strKey;
- ST_LINE_INFO* val = NULL; // 注意这里必须是添加时的变量类型,如果用void*,则会有内存泄露。
- m_prjFiles.GetNextAssoc(pos,strKey,(void*&)val); // 这里把定义的变量类型转换为void*&。
- if (val)
- {
- delete val;
- val = NULL;
- }
- }
- m_prjFiles.RemoveAll();
时间: 2024-10-12 19:49:32