CMapStringToPtr添加与释放
- // 创建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();
 
CMapStringToPtr添加与释放的更多相关文章
- Atitit.aticmd v4  新特性q39 添加定时器释放功能
		
Atitit.aticmd v4 新特性q39 添加定时器释放功能 V1 实现兰cmd V2 标准输入,标准输出,标准错误与重新定向 V3 stdout stderr统一重新定向 V4 添加定 ...
 - (转)FirstResponder 释放问题
		
FirstResponder 释放问题 转自:http://www.cnblogs.com/smileEvday/archive/2012/03/18/2405190.html View的FirstR ...
 - (五十八)NSObject实现多线程、自动释放池的补充
		
模拟一个图片下载的场景,图片的下载需要2s,在这期间为了保证程序的流畅,应该把图片的下载放在子线程中进行. 使用NSObject的方法performSelectorInBackground方法即可实现 ...
 - iOS APP性能优化
		
:应用启动时间 应用启动时,只加载启动相关的资源和必须在启动时加载的资源. :本地图片加载方式 本地图片加载常用方法有两种: a. [UIImage imageNamed:@"xx.png& ...
 - iOS开发系列—Objective-C之内存管理
		
概述 我们知道在程序运行过程中要创建大量的对象,和其他高级语言类似,在ObjC中对象时存储在堆中的,系统并不会自动释放堆中的内存(注意基本类型是由系统自己管理的,放在栈上).如果一个对象创建并使用后没 ...
 - iOS-Objective-C基础
		
一.Foundation框架 概述 我们前面的章节中就一直新建Cocoa Class,那么Cocoa到底是什么,它和我们前面以及后面要讲的内容到底有什么关系呢?Objective-C开发中经常用到NS ...
 - 06OC之内存管理
		
在高级语言中,例如C#是通过垃圾回收机制(GC)来解决这个问题,但是在OC并没有类似的垃圾回收机制,因此必须由程序员手动去维护.今天就讲讲OC中的内存管理: 一.内存管理原理 在Xcode4.2之后的 ...
 - RunLoop和autorelease的一道面试题
		
有这么一道iOS面试题 以下代码有没有什么问题?如果有?如何解决? for (int i = 0; i < largeNumber; i++) { NSString *str = [NSStri ...
 - c++ auto_ptr智能指针
		
c++ auto_ptr智能指针 该类型在头文件memory中,在程序的开通通过 #include<memory> 导入,接下来讲解该智能指针的作用和使用. 使用方法: auto_ptr& ...
 
随机推荐
- Apache编译安装
			
1.准备好源码包并配置好yum源,需要的源码包包括:httpd-2.4.18.apr-1.5.2.tar.gz.apr-util-1.5.4.tar.gz 2.准备用户 groupadd -r apa ...
 - mysql主从复制跳过错误
			
mysql主从复制,经常会遇到错误而导致slave端复制中断,这个时候一般就需要人工干预,跳过错误才能继续 跳过错误有两种方式: 1.跳过指定数量的事务: mysql>slave stop; m ...
 - 《APUE》第7章 进程环境-读书笔记
			
一.main函数. main函数的原型如下.argc是命令行参数的数目,argv是指向参数的各个指针所构成的数组. int main(int argc, char *argv[]) 当内核执行C程序时 ...
 - Python中的数据结构 --- 集合(set)
			
1.集合(set)里面的元素是不可以重复的 s={1,2,3,3,4,3,4} ## 输出之后,没有重复的 2.定义一个空集合 s = set([]) print s,type(s)3 ...
 - 1. Java EE简介 - JavaEE基础系列
			
什么是Java EE? 真的是你理解的那样吗? Java EE, 原名J2EE, 其核心由一系列抽象的标准规范所组成, 是针对目前软件开发中所普遍面临问题的解决方案. 注意以上定义中的"抽象 ...
 - CF 382C
			
http://codeforces.com/problemset/problem/382/C 读完题立刻知道怎么做,然后分类讨论到吐血,写挂了,巨蠢 #include <iostream> ...
 - TreeSet中自定义Comparator实现降序
			
@Test public void test1() { TreeSet ts = new TreeSet<Integer>(new MyComparator()); ts.add(3); ...
 - Jmeter简单的接口测试
			
1.新建线程组 2.编辑线程组信息 3.在线程组中添加HTTP信息头管理器 4.配置HTTP信息头管理器 参数格式配置 5.在线程组中添加HTTP请求 6.编辑HTTP请求信息 7.添加响应断言 8. ...
 - Uoj 73 未来程序
			
Uoj 73 未来程序 神仙提答. Subtask 1 仔细阅读,发现是要计算 \(a*b\ \%\ c\).用龟速乘或者 \(python\) 直接算. Subtask 2 仔细阅读并手算一下,发现 ...
 - BZOJ2217 Poi2011 Lollipop 【思维+模拟】
			
Description 有一个长度为n的序列a1,a2,...,an.其中ai要么是1("W"),要么是2("T"). 现在有m个询问,每个询问是询问有没有一个 ...