0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

C++ vector刪除符合條件元素的編程技巧

電子設(shè)計(jì) ? 2018-09-20 10:03 ? 次閱讀

C++ vector中實(shí)際刪除元素使用的是容器vecrot中std::vector::erase()方法。

C++ 中std::remove()并不刪除元素,因?yàn)槿萜鞯膕ize()沒(méi)有變化,只是元素的替換。

1.std::vector::erase()

函數(shù)原型:iterator erase (iterator position);//刪除指定元素

iterator erase (iterator first, iterator last);//刪除指定范圍內(nèi)的元素

返回值:指向刪除元素(或范圍)的下一個(gè)元素。(An iterator pointing to the new location of the element that followed the last element erased by the function call. This is the container end if the operation erased the last element in the sequence.)

2.代碼實(shí)例

#include
#include
#include
using namespace std;
int out(vector &iVec)
{
for(int i=0;i
cout<
cout<
return 0;
}
int main()
{
vector iVec;
vector::iterator it;
int i;
for( i=0;i<10;i++)
iVec.push_back(i);
cout<<"The Num(old):";out(iVec);
for(it=iVec.begin();it!=iVec.end();)
{
if(*it % 3 ==0)
it=iVec.erase(it); //刪除元素,返回值指向已刪除元素的下一個(gè)位置
else
++it; //指向下一個(gè)位置
}
cout<<"The Num(new):";out(iVec);
return 0;
}
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • C++
    C++
    +關(guān)注

    關(guān)注

    21

    文章

    2090

    瀏覽量

    73405
  • Vector
    +關(guān)注

    關(guān)注

    3

    文章

    53

    瀏覽量

    8536
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    c++vector容器

    1.vector容器介紹 ? ? ? 向量(Vector)是一個(gè)封裝了動(dòng)態(tài)大小數(shù)組的順序容器(Sequence Container)。跟任意其它類型容器一樣,它能夠存放各種類型的對(duì)象??梢院?jiǎn)單的認(rèn)為
    的頭像 發(fā)表于 07-13 19:36 ?1336次閱讀
    <b class='flag-5'>c++</b>之<b class='flag-5'>vector</b>容器

    刪除數(shù)組元素

    刪除數(shù)組元素作為條件結(jié)構(gòu)的條件輸入端是怎么回事啊。。。
    發(fā)表于 03-30 15:51

    vector用法總結(jié)(轉(zhuǎn)載)

    ,并且for中的測(cè)試比較ix和0。第一次循環(huán)時(shí),由于ix本身就是0,則條件測(cè)試失敗,for循環(huán)體一次也不執(zhí)行。關(guān)鍵概念:安全的泛型編程C++程序員習(xí)慣于優(yōu)先選用!=而不是
    發(fā)表于 05-01 15:22

    matlab矩陣如何索引符合特定條件元素?

    matlab 中 如何所以符合特定條件元素,比如 索引大于1的輸出來(lái)
    發(fā)表于 11-12 10:52

    Visual C++ 6.0 高級(jí)編程 -下載

    Visual C++ 6.0 高級(jí)編程,免費(fèi)下載:全面介紹了Visual C++ 6.0的中高級(jí)編程技術(shù),其內(nèi)容主要有:內(nèi)存管理、高級(jí)圖形處理、使用Internet、創(chuàng)建多線程程序、創(chuàng)
    發(fā)表于 07-12 15:25 ?0次下載
    Visual <b class='flag-5'>C++</b> 6.0 高級(jí)<b class='flag-5'>編程</b> -下載

    編程C C++初學(xué)者+FAQ

    編程C C++初學(xué)者+FAQ
    發(fā)表于 09-06 14:55 ?80次下載

    C++編程思想

    C++編程思想,很好的資料,大家下載看看吧!夠20字了吧,哈哈哈!
    發(fā)表于 11-17 11:38 ?0次下載

    Android C++高級(jí)編程----使用NDK

    Android C++高級(jí)編程----使用NDK
    發(fā)表于 03-19 11:23 ?3次下載

    C++vector的定義與初始化

    C++中的vector vector(向量)是一種序列式容器,類似于數(shù)組,但比數(shù)組更優(yōu)越。一般來(lái)說(shuō)數(shù)組不能動(dòng)態(tài)拓展,因此在程序運(yùn)行的時(shí)候不是浪費(fèi)內(nèi)存,就是造成越界。而vector正好彌
    的頭像 發(fā)表于 02-02 16:41 ?8939次閱讀
    <b class='flag-5'>C++</b>中<b class='flag-5'>vector</b>的定義與初始化

    C++編程調(diào)試秘笈

    C++編程調(diào)試秘笈資料下載。
    發(fā)表于 06-01 15:35 ?14次下載

    CC++經(jīng)典著作-C專家編程.PDF

    CC++經(jīng)典著作-C專家編程.PDF
    發(fā)表于 12-13 17:11 ?0次下載

    CC++實(shí)物精選《C專家編程

    CC++實(shí)物精選《C專家編程
    發(fā)表于 01-17 09:55 ?0次下載

    C++學(xué)習(xí)筆記之順序容器

    C++中的順序容器是一種用于存儲(chǔ)和管理元素序列的數(shù)據(jù)結(jié)構(gòu)。它們提供了一組有序的元素,并支持在序列的任意位置插入和刪除元素。
    的頭像 發(fā)表于 05-11 17:05 ?535次閱讀

    動(dòng)態(tài)數(shù)組和C++ std::vector詳解

    std::vectorC++的默認(rèn)動(dòng)態(tài)數(shù)組,其與array最大的區(qū)別在于vector的數(shù)組是動(dòng)態(tài)的,即其大小可以在運(yùn)行時(shí)更改。std::vector是封裝動(dòng)態(tài)數(shù)組的順序容器,且該容器
    的頭像 發(fā)表于 07-19 11:07 ?913次閱讀

    c++怎么開(kāi)始編程

    C++是一種高級(jí)的、通用的編程語(yǔ)言,用于開(kāi)發(fā)各種類型的應(yīng)用程序。它是從C語(yǔ)言演變而來(lái),也是一種靜態(tài)類型語(yǔ)言,可以在不同的平臺(tái)上進(jìn)行開(kāi)發(fā)。C++具有高度的靈活性和性能,并且廣泛應(yīng)用于游戲
    的頭像 發(fā)表于 11-27 15:56 ?826次閱讀