map和vector删除元素的区别

经常使用map和vector,但是没有深入研究

 

map.erase(iter);//没有返回值

map.erase(iter->first);//有返回值成功返回1,失败返回0

 

vector没有下面的删除方式

vector.erase(*iter);

 

从map和vector中删除元素时有所不同

for(iter = m_MapSocket.begin();iter != m_MapSocket.end();iter++)

{

         pcT3 = iter->second;

         if(pcT3 != NULL)

        {

              if(1 == pcT3->n)

             {

                  //m_MapSocket.erase(iter);
                  int nRet = m_MapSocket.erase(iter->first);
                    cout<<"erase::"<<nRet<<endl;

              } 

      } 

 }

 

for(;viter != vector.end();)
{
       if(*viter == 1)
      {
           //pIntVec->erase(ite);
          //ite --;//如果没有此操作。将会跳过删除后紧跟的一个元素
          ite = pIntVec->erase(ite);

      }
      else
          viter++;
 }

其中的奥妙自己去体会吧

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值