您的位置:首页 > 其它

STL中容器的删除操作

2012-08-20 10:14 295 查看
(一)关联容器的删除操作

示例代码:

typedef std::map<int,int>  AContainer;

typedef std::map<int,int>::iterator AContainer_it;

AContainer C;

AContainer_it it;

for (it = C.begin(); it != C.end(); )

{

    if ( badValue(*it))

    {

       C.erase(it++)   //删除时把当前的it 传给erase,然后作为副作用增加it; 

   }

  else

    {

         ++it;

    }

}

 

(二)序列容器的删除

typedef std::vector<int>  BContainer;

typedef std::vector<int>::iterator BContainer_it;

BContainer C;

BContainer_it it;

for (it = C.begin(); it != C.end(); )

{

    if (badValue(*it))

   {

      it  = C.erase(it);

   }

  else

   {

      ++it;

   }

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  iterator