zoukankan      html  css  js  c++  java
  • 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();  
  • 相关阅读:
    006开源O/R映射框架内容回顾
    005---query接口初步
    004---持久对象的生命周期介绍
    C++中计算矩阵的行列式
    异面直线判定
    华夏万家不投资最佳激活顺序
    飞行目标定位测量相关文献记录
    程序运行缺少MSVCR110.dll
    C++中的return返回值:return0 or return -1?
    办宽带
  • 原文地址:https://www.cnblogs.com/jiangzhaowei/p/4972239.html
Copyright © 2011-2022 走看看