浅谈 CMap 与 map
说白了是MFC与STL标准库的函数
CMapStringToString 映射表字符对字符
CObject MFC的大多数基类,很常见很基础的 一个类。
CObList 就是存储CObject的列表
CMapStringToOb 通过字符对CObList/CObject
这个用起来就有点意思了,可以建立一个基于CObject的类(不基于的话也行),CObList把这些类串起来(不基于的话这里需要强转),然后还可以CMapStringToOb来映射管理。说起来很简单,但是实际使用的话很强大,可以解决很多复杂的逻辑关系或者数据关系。
当然CMap<Key,ARG_Key,Values,ARG_Values> 更加强大,不仅是字符与CObject类,所有类型均可了。
map<key, Values> 虽然作为STL的函数,功能上感觉也差不多,map也好 vector也好,均能够存储一般数据类型、数据结构体、类的指针。
以下摘自: http://blog.sina.com.cn/s/blog_4b559bf30100gta6.html
在MFC中,有CMap相关的map类, 在 map中有map。
// Maps (aka Dictionaries)
class CMapWordToOb; // map from WORD to CObject*
class CMapWordToPtr; // map from WORD to void*
class CMapPtrToWord; // map from void* to WORD
class CMapPtrToPtr; // map from void* to void*
// Special String variants
class CMapStringToPtr; // map from CString to void*
class CMapStringToOb; // map from CString to CObject*
class CMapStringToString; // map from CString to CString
对于以上可以直接用stl中的一个map类型全部概况。
map<Word, CObject*>
map<Word, void*>
map<void*, Word>
map<void*, void*>
map<CString,void*>
map<CString, CObject*>
map<CString, CString>
由此,还是map简练。
再看遍历时,各个处理如下:
CMap<DWORD, DWORD&, ThreadInfo, ThreadInfo&> m_threadMap; //定义一组线程map
则在
ThreadInfo info;
DWORD Key ;
POSITION pos = threadMap.GetStartPosition();
while (pos != NULL)
{
threadMap.GetNextAssoc(pos, Key, info);
{
。。。
}
}
如果采用std中的map处理则
map<DWORD ,ThreadInfo>m_threadMap;
map<DWORD ,ThreadInfo>::iteraotr pIt;
for(pIt = m_threadMap.begin(); pIt != m_threadMap.end(); pIt++){
......
}
简单明了,胜过用mfc中繁芜而又不清晰的过程。所以多用std做程序开发比用一些过时的要好得多。
何须浪费时间去知道几个茴字的写法呢。是不是。
浅谈 CMap 与 map相关推荐
- 浅谈Java中的Set、List、Map的区别
就学习经验,浅谈Java中的Set,List,Map的区别,对JAVA的集合的理解是想对于数组: 数组是大小固定的,并且同一个数组只能存放类型一样的数据(基本类型/引用类型),JAVA集合可以存储和操 ...
- 浅谈 LiveData 的通知机制
LiveData 和 ViewModel 是 Google 官方的 MVVM 架构的一个组成部分.巧了,昨天分析了一个问题是 ViewModel 的生命周期导致的.今天又遇到了一个问题是 LiveDa ...
- 浅谈L0,L1,L2范数及其应用
原文传送门:浅谈L0,L1,L2范数及其应用 浅谈L0,L1,L2范数及其应用 在线性代数,函数分析等数学分支中,范数(Norm)是一个函数,其赋予某个向量空间(或矩阵)中的每个向量以长度或大小.对于 ...
- python竞赛_浅谈Python在信息学竞赛中的运用及Python的基本用法
浅谈Python在信息学竞赛中的运用及Python的基本用法 前言 众所周知,Python是一种非常实用的语言.但是由于其运算时的低效和解释型编译,在信息学竞赛中并不用于完成算法程序.但正如LRJ在& ...
- 浅谈Service Manager成为Android进程间通信(IPC)机制Binder守护进程之路
原文地址: http://blog.csdn.net/luoshengyang/article/details/6621566 上一篇文章Android进程间通信(IPC)机制Binder简要介绍和学 ...
- python编写函数_浅谈Python 函数式编程
匿名函数lambda表达式 什么是匿名函数? 匿名函数,顾名思义就是没有名字的函数,在程序中不用使用 def 进行定义,可以直接使用 lambda 关键字编写简单的代码逻辑.lambda 本质上是一个 ...
- 算力限制场景下的目标检测实战浅谈
作者:张钊宁 本文为极市原创,转载请注明作者和出处. 原文:算力限制场景下的目标检测实战浅谈 本篇文章为张博19年1月18日在极市直播分享的文字详细整理. 算力限制场景主要是指在嵌入式设备,也就是算力 ...
- java 多线程同步_浅谈Java多线程(状态、同步等)
Java多线程是Java程序员必须掌握的基本的知识点,这块知识点比较复杂,知识点也比较多,今天我们一一来聊下Java多线程,系统的整理下这部分内容. 一.Java中线程创建的三种方式: 1.通过继承T ...
- 浅谈:Spring Boot原理分析,切换内置web服务器,SpringBoot监听项目(使用springboot-admin),将springboot的项目打成war包
浅谈:Spring Boot原理分析(更多细节解释在代码注释中) 通过@EnableAutoConfiguration注解加载Springboot内置的自动初始化类(加载什么类是配置在spring.f ...
最新文章
- 【Kotlin】Kotlin 面向对象 ( 类 | 成员变量 | 成员方法 | 封装 | 继承 | 多态 )
- ABAPプログラム開発において使用実績のある汎用モジュール一覧
- 项目忙还要过软考,您需要简练!
- CSS文本对齐text-align详解
- php基础教程 第五步 逻辑控制
- c语言程序设计基础1千克,c语言学习知识编程经典编辑题汇总整编.doc
- dj鲜生-29-登陆后欢迎信息的显示
- 【华为云技术分享】上亿条数据,如何查询分析简单又高效?
- SQL Server 索引结构及其使用(四)
- lightbox的一个ajax效果
- 服务器软件是否支持双机热备,服务器双机热备建议方案.doc
- deep|Bayes(4)
- 维吾尔语小程序开发个人中心插件
- 素数表的C++实现:快速进行素数筛选(埃氏筛法)
- Windows 10 打印机驱动安装(以惠普M136 MFP为例)
- 腾讯云多媒体文件处理总结
- CentOS8桌面图标不显示
- 记录在处理SIF数据中,遇到的一些问题及解决过程
- python采集最新世界大学排名, 来看看你的母校上榜没~
- 学习 Linux 有哪些好处?
热门文章
- 微软文本转语音小工具(Text to speech)网页版
- python中使用什么表示代码块、不需要使用大括号_Python3 基础语法
- 这些手机软件,你使用过哪一个?
- 简易时间计时器的实现
- 15. cookie、session、token
- 掘金100道(2)['1', '2', '3'].map(parseInt) what why ?
- 一元运算符 + 表示正号 - 表示负号
- 螃蟹芯片RTL8762之修改蓝牙设备类型
- 最详细的 Hadoop 入门教程
- 无刷直流电机(BLDC)建模与仿真