亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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)文章

  • c/c++內(nèi)存分配大小實(shí)例講解

    c/c++內(nèi)存分配大小實(shí)例講解

    在本篇文章里小編給大家整理了一篇關(guān)于c/c++內(nèi)存分配大小實(shí)例講解內(nèi)容,有需要的朋友們可以跟著學(xué)習(xí)參考下。
    2021-11-11
  • C字符串操作函數(shù)的實(shí)現(xiàn)詳細(xì)解析

    C字符串操作函數(shù)的實(shí)現(xiàn)詳細(xì)解析

    以下是對(duì)C語言中字符串操作函數(shù)的實(shí)現(xiàn)進(jìn)行了詳細(xì)的分析介紹,需要的朋友可以過來參考下
    2013-08-08
  • C語言實(shí)現(xiàn)類似wget的進(jìn)度條效果

    C語言實(shí)現(xiàn)類似wget的進(jìn)度條效果

    這篇文章主要介紹了C語言實(shí)現(xiàn)類似wget的進(jìn)度條效果的方法,主要是讓大家可以熟練的使用轉(zhuǎn)移符\r,這里推薦給大家,需要的小伙伴參考下。
    2015-03-03
  • C++實(shí)現(xiàn)查詢本機(jī)信息的示例代碼

    C++實(shí)現(xiàn)查詢本機(jī)信息的示例代碼

    這篇文章主要為大家詳細(xì)介紹了如何利用C++實(shí)現(xiàn)查詢本機(jī)信息,并且進(jìn)行上報(bào),文中的示例代碼講解詳細(xì),具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-05-05
  • c++11&14-多線程要點(diǎn)匯總

    c++11&14-多線程要點(diǎn)匯總

    這篇文章主要介紹了c++11&14-多線程的使用方法,文中代碼非常詳細(xì),方便大家更好的參考和學(xué)習(xí),感興趣的朋友快來了解下
    2020-06-06
  • C++宏函數(shù)和內(nèi)聯(lián)函數(shù)的使用

    C++宏函數(shù)和內(nèi)聯(lián)函數(shù)的使用

    本文主要介紹了C++宏函數(shù)和內(nèi)聯(lián)函數(shù)的使用,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • C++中的 % 的含義說明

    C++中的 % 的含義說明

    很多朋友私信小編不理解C++中的 % 的含義,其實(shí)有兩種意思,一種是格式化字符串輸出另一種是整數(shù)取余,本文給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧
    2023-03-03
  • C++如何用智能指針管理內(nèi)存資源

    C++如何用智能指針管理內(nèi)存資源

    這篇文章主要介紹了C++如何用智能指針管理內(nèi)存資源,幫助大家更好的理解和使用c++開發(fā),感興趣的朋友可以了解下
    2020-08-08
  • C語言以數(shù)據(jù)塊的形式讀寫文件實(shí)例代碼

    C語言以數(shù)據(jù)塊的形式讀寫文件實(shí)例代碼

    本文主要介紹C語言中以數(shù)據(jù)塊的形式讀寫文件,這里提供了實(shí)例代碼舉例說明,有需要的小伙伴可以參考下
    2016-07-07
  • Qt5.9程序打包發(fā)布的實(shí)現(xiàn)

    Qt5.9程序打包發(fā)布的實(shí)現(xiàn)

    本文主要介紹了Qt5.9程序打包發(fā)布的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-05-05

最新評(píng)論