• CMapStringToPtr添加与释放


    1. // 创建MapStringToPtr  
    2. CMapStringToPtr m_prjFiles;  
    3. CStringList m_fileList;  
    4. m_fileList.AddTail(_T("C:\a"));  
    5. m_fileList.AddTail(_T("C:\b"));  
    6. m_fileList.AddTail(_T("C:\c"));  
    7. // 遍历CStringList变量,添加到CMapStringToPtr  
    8. for(POSITION pos=m_fileList.GetHeadPosition();pos;m_fileList.GetNext(pos)){  
    9.     ST_LINE_INFO* fi=new ST_LINE_INFO;  // 一个自定义的结构,定义了strPath变量  
    10.     fi->strPath=m_fileList.GetAt(pos);  
    11.   
    12.     void* rVal=NULL;  
    13.     if(m_prjFiles.Lookup(fi->strName,rVal)){  
    14.         delete fi;  
    15.         fi = NULL;  
    16.     }else{  
    17.         m_prjFiles.SetAt(fi->strName,fi);  
    18.     }             
    19. }  
    20. // 释放MapStringToPtr  
    21. for(POSITION pos=m_prjFiles.GetStartPosition();pos;){  
    22.     CString strKey;  
    23.     ST_LINE_INFO* val = NULL;  // 注意这里必须是添加时的变量类型,如果用void*,则会有内存泄露。  
    24.     m_prjFiles.GetNextAssoc(pos,strKey,(void*&)val);    // 这里把定义的变量类型转换为void*&。  
    25.     if (val)  
    26.     {  
    27.         delete val;  
    28.         val = NULL;  
    29.     }  
    30. }  
    31. m_prjFiles.RemoveAll();  
  • 相关阅读:
    C++中unique函数的用法总结
    洛谷P1039侦探推理题解
    洛谷P1040 加分二叉树题解
    洛谷P1038 神经网络题解
    emmm
    biiset用法
    浅谈接口与抽象类的区别
    递归调用——数学观点看递归
    反转字符串
    SQL 时间戳转DateTime类型
  • 原文地址:https://www.cnblogs.com/jiangzhaowei/p/4972239.html
Copyright © 2020-2023  润新知