国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > C > 正文

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

2020-01-26 15:49:59
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

總結(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ì)出問(wèn)題。

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

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

std::vector <PACK_PRINT>::iterator It ;
for(It=printItems.begin();It!=printItems.end();)
{
  //我是說(shuō)這里怎么判斷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 的刪除如何寫(xiě)喲。另外這樣刪除有錯(cuò)嗎?
          {//刪除
                printItems.erase(printItems.begin() + i);
          }
          else
          {//不刪除
                ++i;
          }
}

發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 威远县| 荔波县| 始兴县| 保山市| 和龙市| 北宁市| 富民县| 布拖县| 梁平县| 宁强县| 嘉祥县| 电白县| 阿图什市| 壶关县| 金坛市| 翁源县| 彰武县| 乌审旗| 肃宁县| 留坝县| 青铜峡市| 大竹县| 南城县| 涞源县| 吉隆县| 鹤峰县| 固阳县| 凤冈县| 凤凰县| 拜泉县| 威远县| 新龙县| 青铜峡市| 宁河县| 巢湖市| 衡阳县| 卢氏县| 十堰市| 沂南县| 闽清县| 澜沧|