用CString作为Key使用CMap

本文探讨了在MFC中使用CMap时如何正确选择CString作为键类型,并给出了具体的代码示例,强调了ARG_KEY参数设置为LPCTSTR的重要性。

http://www.cppblog.com/flyingxu/archive/2006/04/17/4274.html?opt=admin

 

注意: !! static + UserMap2 CUsers::m_users;--> 静态成员变量必须有外部定义的习惯

 

用CString作为Key使用CMap

 

CMap在用CString做key类型时,ARG_KEY要选LPCTSTR
文章来源: http://blog.youkuaiyun.com/flyingxu/archive/2005/12/26/562852.aspx

遇到好几个人说CMap在用CString做key类型时有问题,说用int和DWORD就可以,用CString就不行。因此很多人推荐使用MFC中的CMapStringToPtr之类。

看下面的代码:
//.h
    CMap<CString, LPCTSTR, int, int> typeMap;
//.cpp
    typeMap.SetAt(_T("ONE"),1);
    typeMap.SetAt(_T("TWO"),2);

    int nValue = 0;
    BOOL ret = typeMap.Lookup(_T("ONE"), nValue);
    ret = typeMap.Lookup(_T("THREE"), nValue);
    ret = typeMap.Lookup(_T("TWO"), nValue);
我的代码运行的很好,我觉得关键是ARG_KEY要选LPCTSTR

转载于:https://www.cnblogs.com/carl2380/archive/2011/01/03/1924568.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值