首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

帮忙看看小弟我的代码,map里面放CComBSTR,是否正确

2012-02-10 
帮忙看看我的代码,map里面放CComBSTR,是否正确?如下代码是否正确并安全?constCComBSTRcomStr1(L RWUM )

帮忙看看我的代码,map里面放CComBSTR,是否正确?
如下代码是否正确并安全?

const   CComBSTR   comStr1(   L "RWUM "   );
const   CComBSTR   comStr2(   L "RWUH "   );
const   CComBSTR   comStr3(   L "RWUL "   );
map <CAdapt <CComBSTR> ,   int>   m;  
m[comStr1]   =   1;
m[comStr2]   =   2;
m[comStr3]   =   3;

if(   m.find(comStr1)   ==   m.end())
{
cout   < <   "fail "   < <   endl;
}
else
{
cout   < <   "ok "   < <   endl;
}

[解决办法]
去看《Effective STL》item21,map的key必须满足可排序语意。你得自己分析CAdapt <CComBSTR> 是否满足这个要求。
[解决办法]
能满足operator= 和operator <就可以。

[解决办法]
完全可以,不过用string(wstring)可能更好
[解决办法]
应该没什么太大问题,BSTR和char*的区别不是太大

热点排行