最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

stl容器set,map,vector之erase用法與返回值詳細(xì)解析

 更新時(shí)間:2013年09月24日 09:06:18   作者:  
在使用 list、set 或 map遍歷刪除某些元素時(shí)可以這樣使用,如下所示

總結(jié)本人在工作中經(jīng)驗(yàn)教訓(xùn)。

在使用 list、set 或 map遍歷刪除某些元素時(shí)可以這樣使用:

正確使用方法1

復(fù)制代碼 代碼如下:

      std::list< int> List;
      std::list< int>::iterator itList;
      for( itList = List.begin(); itList != List.end(); )
      {
            if( WillDelete( *itList) )
            {
               itList = List.erase( itList);
            }
            else
               itList++;
      }

正確使用方法2 
復(fù)制代碼 代碼如下:

    std::list< int> List;
      std::list< int>::iterator itList;
      for( itList = List.begin(); itList != List.end(); )
      {
            if( WillDelete( *itList) )
            {
               List.erase(itList++);
            }
            else
               itList++;
      }

正確使用方法3
復(fù)制代碼 代碼如下:

      std::list< int> List;
      std::list< int>::iterator it, next;
      for( it = List.begin(), next = it, next ++; it != List.end(); it = next, ++next)
      {
            if( WillDelete( *it) )
            {
               List.erase(it);
            }
      }

注:方法三更為巧妙,但需注意方法三是用前需要判斷容器是否為空,否則迭代器會(huì)出問題。

我測(cè)試得出,set.erase 不返回迭代器,list返回。
vector  刪除操作

復(fù)制代碼 代碼如下:

std::vector <PACK_PRINT>::iterator It ;
for(It=printItems.begin();It!=printItems.end();)
{
  //我是說這里怎么判斷printItems printItems 里PACK_PRINT.bh =0

  if( It.bh ==0) //是這樣嗎?
  {//刪除
       It=printItems.erase(It);
  }
  else
  {//不刪除
       ++It;
  }
}


復(fù)制代碼 代碼如下:

std::vector <PACK_PRINT> printItems;
int i = 0;
while(i < printItems.size())
{

          if(printItems[i].bh == 0)  //這里比如我想把 printItems 時(shí)PACK_PRINT.bh =0 的刪除如何寫喲。另外這樣刪除有錯(cuò)嗎?
          {//刪除
                printItems.erase(printItems.begin() + i);
          }
          else
          {//不刪除
                ++i;
          }
}

相關(guān)文章

最新評(píng)論

海淀区| 年辖:市辖区| 普兰县| 西乌| 黔西| 察雅县| 大埔县| 永宁县| 绥阳县| 梅河口市| 酒泉市| 临沂市| 常山县| 习水县| 漾濞| 镇赉县| 胶南市| 富平县| 赤壁市| 威信县| 怀安县| 乌拉特前旗| 丹凤县| 白银市| 霍州市| 永济市| 奉贤区| 延吉市| 清水河县| 信丰县| 齐齐哈尔市| 黄冈市| 建德市| 来安县| 平泉县| 陇西县| 铜梁县| 汤阴县| 阳泉市| 桑日县| 吉安市|