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();

最新文章

  1. 图解javascript
  2. java第二周周学习总结
  3. 浅谈ajax
  4. Atitit常见的标准化组织与规范数量jcp ecma iso
  5. C++笔记 之 基础回顾(一)
  6. <!DOCTYPE>标签的定义与用法
  7. codevs 2216 线段树 两种更新方式的冲突
  8. datagrid combobox事件更新编辑状态下的datagrid行
  9. .Net并行编程
  10. js观察者模式
  11. About GAC
  12. Raid1源代码分析--一些补充
  13. 80端口被NT kernel & System 占用pid= 4的解决方法
  14. XDocument读取xml的所有元素以及XPath语法
  15. 迈向angularjs2系列(6):路由机制
  16. node05
  17. appium常用方法
  18. JFrame、JPanel 、Layout开发的简单例子
  19. linuxC/C++面试问题总结整理
  20. 深入理解C语言的函数调用过程 【转】

热门文章

  1. http请求的GET和POST请求:查询和新增(server.php)
  2. bzoj3600
  3. bzoj2241
  4. SpringXML方式配置bean的懒加载lazy-init
  5. Python3基本数据类型(五)
  6. fidder设置断点,修改请求参数等
  7. Python变量、字符练习1
  8. 浅谈title属性与alt属性
  9. Chrome浏览器优化技巧
  10. three.js入门——先跑个旋转的正方体