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. void* rVal=NULL;
  12. if(m_prjFiles.Lookup(fi->strName,rVal)){
  13. delete fi;
  14. fi = NULL;
  15. }else{
  16. m_prjFiles.SetAt(fi->strName,fi);
  17. }
  18. }
  19. // 释放MapStringToPtr
  20. for(POSITION pos=m_prjFiles.GetStartPosition();pos;){
  21. CString strKey;
  22. ST_LINE_INFO* val = NULL;  // 注意这里必须是添加时的变量类型,如果用void*,则会有内存泄露。
  23. m_prjFiles.GetNextAssoc(pos,strKey,(void*&)val);    // 这里把定义的变量类型转换为void*&。
  24. if (val)
  25. {
  26. delete val;
  27. val = NULL;
  28. }
  29. }
  30. m_prjFiles.RemoveAll();

CMapStringToPtr添加与释放的更多相关文章

  1. Atitit.aticmd v4  新特性q39 添加定时器释放功能

    Atitit.aticmd v4  新特性q39 添加定时器释放功能 V1  实现兰cmd V2 标准输入,标准输出,标准错误与重新定向 V3  stdout stderr统一重新定向 V4  添加定 ...

  2. (转)FirstResponder 释放问题

    FirstResponder 释放问题 转自:http://www.cnblogs.com/smileEvday/archive/2012/03/18/2405190.html View的FirstR ...

  3. (五十八)NSObject实现多线程、自动释放池的补充

    模拟一个图片下载的场景,图片的下载需要2s,在这期间为了保证程序的流畅,应该把图片的下载放在子线程中进行. 使用NSObject的方法performSelectorInBackground方法即可实现 ...

  4. iOS APP性能优化

    :应用启动时间 应用启动时,只加载启动相关的资源和必须在启动时加载的资源. :本地图片加载方式 本地图片加载常用方法有两种: a. [UIImage imageNamed:@"xx.png& ...

  5. iOS开发系列—Objective-C之内存管理

    概述 我们知道在程序运行过程中要创建大量的对象,和其他高级语言类似,在ObjC中对象时存储在堆中的,系统并不会自动释放堆中的内存(注意基本类型是由系统自己管理的,放在栈上).如果一个对象创建并使用后没 ...

  6. iOS-Objective-C基础

    一.Foundation框架 概述 我们前面的章节中就一直新建Cocoa Class,那么Cocoa到底是什么,它和我们前面以及后面要讲的内容到底有什么关系呢?Objective-C开发中经常用到NS ...

  7. 06OC之内存管理

    在高级语言中,例如C#是通过垃圾回收机制(GC)来解决这个问题,但是在OC并没有类似的垃圾回收机制,因此必须由程序员手动去维护.今天就讲讲OC中的内存管理: 一.内存管理原理 在Xcode4.2之后的 ...

  8. RunLoop和autorelease的一道面试题

    有这么一道iOS面试题 以下代码有没有什么问题?如果有?如何解决? for (int i = 0; i < largeNumber; i++) { NSString *str = [NSStri ...

  9. c++ auto_ptr智能指针

    c++ auto_ptr智能指针 该类型在头文件memory中,在程序的开通通过 #include<memory> 导入,接下来讲解该智能指针的作用和使用. 使用方法: auto_ptr& ...

随机推荐

  1. label技巧

    问题描述: 一般都用label的for属性指定label的点击范围: <label for="male"><input type="radio" ...

  2. jquery基础 笔记一

    一. 1. vsdoc: 在Visual Studio中需要引入此版本的jquery类库才能启用智能感知.如:jquery-1.3.2-vsdoc2.js<body> <div id ...

  3. SPOJ 5152 Brute-force Algorithm EXTREME && HDU 3221 Brute-force Algorithm 快速幂,快速求斐波那契数列,欧拉函数,同余 难度:1

    5152. Brute-force Algorithm EXTREME Problem code: BFALG Please click here to download a PDF version ...

  4. LeetCode OJ:Search a 2D Matrix II(搜寻二维矩阵)

    Write an efficient algorithm that searches for a value in an m x n matrix. This matrix has the follo ...

  5. 通过powershell实现基础认证钓鱼获得密码

    本文来自https://www.secpulse.com/archives/4131.html $cred = $host.ui.promptforcredential('Failed Authent ...

  6. windows下gvim搭建IDE

    原文转载自:手把手教你把Vim改装成一个IDE编程环境(图文) 如侵犯您的版权,请联系:windeal12@qq.com By: 吴垠 Date: 2007-09-07 Version: 0.5 Em ...

  7. Hibernate主键生成策略详解

    转载自:http://blog.csdn.net/wanghuan203/article/details/7562395 hibernate提供的主键生成策略,使我们可以在实体类的映射xml文件中设定 ...

  8. 关于Fildder更改ip简单配置

    之前由于我们公司之前的域名备案 所以临时购买了一个域名主机,可能你如果不配置的话有时候看不到你自己app一些抓包信息具体分为以下几步 配置Filter过滤器记得勾选 第一次进入的时候 2.然后我们再H ...

  9. swift 3 发送 HTTP 请求函数

    private func HttpPost(requestURL:String, postString:String) -> [String : AnyObject] { return Http ...

  10. kd树的原理

      kd树就是一种对k维空间中的实例点进行存储以便对其进行快速检索的树形数据结构,可以运用在k近邻法中,实现快速k近邻搜索.构造kd树相当于不断地用垂直于坐标轴的超平面将k维空间切分.    假设数据 ...