[STL]对std::map的插入和查询操作

When you use the std::map data type, please note:

 Method1

std::map < int , CString >  testMap;
testMap[
0 =  _T(“first”);
testMap[
0 =  _T(“second”); // it is OK, the value will be overwrite to “second”;

 

Method2

typedef std::map  < int , CString > ::value_type valType;
testMap.insert(valType(
0 , _T(“first”));
testMap.insert(valType(
0 , _T(“second”));  // it is faild, the value is still “first”

So in the method2, you have to delete the value with the same key before insert another value.

e.g.:

std::map  < int , CString > ::integrator it  =  testMap.find( 0 );
if  ( it  !=  testMap.end(); it ++  )
      testMap.erase(
0 );

What’s more, when you get a value by the array method(method1), If the specified key doesn’t exist in map, the key will be inserted automatically with a empty value. So make sure use testMap.find(key) to get any value in map rather than the array visite method.

e.g.:

// the key “1” doesn’t exist, it will be inserted and return  a empty string here.
CString str  =  testMap[ 1 ];
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值