国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

std::list和std::vector刪除指定下標(biāo)的元素

這篇具有很好參考價(jià)值的文章主要介紹了std::list和std::vector刪除指定下標(biāo)的元素。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

list和vector都可以使用erase函數(shù)移除指定下標(biāo)的元素,注意輸入的是迭代器,返回值為指向下一個元素的位置。:

iterator erase(iterator position);
iterator erase(iterator first,iterator last);

如果下標(biāo)是index,直接調(diào)用即可:

list.erase(list.begin() + index);

如果根據(jù)下標(biāo)一次性刪除多個元素,則會發(fā)生錯誤,因?yàn)閯h除一個元素后,元素個數(shù)會發(fā)生變化,因此下標(biāo)就會出現(xiàn)錯誤,正確代碼如下:文章來源地址http://www.zghlxwxcb.cn/news/detail-674439.html

#include <vector>
#include <list>
#include <iostream>
 
using namespace std;
 
bool sort_desc(int a, int b)
{
return a > b;
}
 
int main(int argc, char *argv[])
{
 
    list<int> mylist;
    mylist.push_back(5);
    mylist.push_back(8);
    mylist.push_back(9);
    mylist.push_back(2);
    mylist.push_back(4);
    mylist.push_back(6);
 
    list<int> index;
    index.push_back(1);
    index.push_back(3);
    index.push_back(4);
    index.sort(sort_desc);//對下標(biāo)數(shù)組進(jìn)行降序
 
    for(list<int>::iterator iter=index.begin(); iter!=index.end(); iter++)
    {
        list<int>::iterator delIter=mylist.begin();
        advance(delIter, *iter);//按照由大到小的下標(biāo)順序進(jìn)行刪除元素,這樣被刪除元素的下標(biāo)是永遠(yuǎn)不會變的
        mylist.erase(delIter);
    }
 
    for(list<int>::iterator iter=mylist.begin(); iter!=mylist.end(); iter++)
    {
        cout << *iter << " ";
    }
    cout << endl;
 
    return 0;
}

到了這里,關(guān)于std::list和std::vector刪除指定下標(biāo)的元素的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • C++面試八股文:std::vector和std::list,如何選擇?

    C++面試八股文:std::vector和std::list,如何選擇?

    某日二師兄參加XXX科技公司的C++工程師開發(fā)崗位第24面: 面試官: list 用過嗎? 二師兄:嗯,用過。 面試官:請講一下 list 的實(shí)現(xiàn)原理。 二師兄: std::list 被稱為雙向鏈表,和C中手寫雙向鏈表本質(zhì)上沒有大的區(qū)別。 list 對象中有兩個指針,一個指向上一個節(jié)點(diǎn)( node ),一

    2024年02月10日
    瀏覽(16)
  • 不要輕易定義指向std::vector中的元素的指針

    不要輕易定義指向std::vector中的元素的指針

    類應(yīng)該是被封裝的,類的用戶通過接口使用類提供的功能,而不必關(guān)心類的內(nèi)部如何實(shí)現(xiàn)。然而,C++標(biāo)準(zhǔn)庫容器 std::vector 的實(shí)現(xiàn)滲透到了接口中來。對于以下代碼: 我們初始化了一個有3個int元素的vector,定義了一個int 指針p,指向v[1] , 打印 *p 以及v[1] 的值。 然后向 v 中pu

    2024年02月05日
    瀏覽(20)
  • 四、數(shù)據(jù)結(jié)構(gòu)——單向鏈表的基本操作詳解:創(chuàng)建、插入(頭插法、尾插法、任意點(diǎn)插法)、刪除(頭刪法、尾刪法、任意位置刪法)、查詢(按值查下標(biāo)、按下標(biāo)查值)、遍歷鏈表和清空鏈表

    四、數(shù)據(jù)結(jié)構(gòu)——單向鏈表的基本操作詳解:創(chuàng)建、插入(頭插法、尾插法、任意點(diǎn)插法)、刪除(頭刪法、尾刪法、任意位置刪法)、查詢(按值查下標(biāo)、按下標(biāo)查值)、遍歷鏈表和清空鏈表

    ————后面附有全部代碼———— 數(shù)據(jù)結(jié)構(gòu)在計(jì)算機(jī)科學(xué)中扮演著重要角色,它用于組織和管理數(shù)據(jù),提高數(shù)據(jù)的操作和訪問效率。單向鏈表是一種簡單但非常重要的數(shù)據(jù)結(jié)構(gòu)。本文將深入探討單向鏈表的定義、特點(diǎn)、基本操作。 單向鏈表是一種線性數(shù)據(jù)結(jié)構(gòu),由一系列

    2024年01月17日
    瀏覽(90)
  • vector容器刪除元素的幾種簡單方法(詳細(xì)實(shí)用)

    (1)使用 vector庫函數(shù)“erase”刪除 , 使用erase函數(shù)后容器size自動-1 (2)使用 vector庫函數(shù)“swap和pop_back()\\\" ,由于 pop_back刪除的是最后一個元素 ,所以先移位再刪除 如果從數(shù)組的角度理解,因?yàn)閿?shù)組存儲的內(nèi)容 在地址上是連續(xù)的 ,要移除目標(biāo)元素,就沒有庫函數(shù)可以使用,

    2023年04月16日
    瀏覽(24)
  • 【數(shù)據(jù)結(jié)構(gòu)】單向鏈表的增刪查改以及指定pos位置的插入刪除

    【數(shù)據(jù)結(jié)構(gòu)】單向鏈表的增刪查改以及指定pos位置的插入刪除

    目錄 ?單向鏈表的概念及結(jié)構(gòu) ?尾插 頭插 尾刪 ?編輯 ?頭刪 ?查找 ?在pos位置前插 ?在pos位置后插 ?刪除pos位置 ?刪除pos的后一個位置 總結(jié) 代碼? 概念:鏈表是一種 物理存儲結(jié)構(gòu)上非連續(xù) 、非順序的存儲結(jié)構(gòu),數(shù)據(jù)元素的 邏輯順序 是通過鏈表中的 指針鏈接 次序?qū)崿F(xiàn)的

    2024年02月05日
    瀏覽(26)
  • 【Java】List更換指定位置的元素

    【Java】List更換指定位置的元素

    List更換指定位置的元素 使用的方法是 list.set() 方法: 打印結(jié)果: 參考鏈接:https://blog.csdn.net/qq_33210042/article/details/110289220

    2024年02月15日
    瀏覽(24)
  • python 找出list列表中相同元素(指定元素)的所有索引

    有時(shí)需要獲取 列表 中某一元素的所有索引,而獲取列表元素索引的函數(shù) index 只能返回第一個滿足條件的元素的索引。 此時(shí)我們可以通過兩種方式獲取其所有索引: 1.將list轉(zhuǎn)為array 對于array對象,可以使用如下方式獲取某個元素的所有索引 其中nums_list為原始列表,nums為arr

    2023年04月14日
    瀏覽(40)
  • java List 刪除 元素

    1.for循環(huán)倒序刪除 2.迭代器刪除 3.lamda stream流過濾

    2024年02月15日
    瀏覽(19)
  • Java 中 List 刪除元素

    刪除某個元素后,list的大小發(fā)生了變化,會導(dǎo)致遍歷準(zhǔn)確。 這種方式可以用在刪除特定的一個元素時(shí)使用,但不適合循環(huán)刪除多個元素時(shí)使用 刪除元素后繼續(xù)循環(huán)會報(bào)錯誤信息 ConcurrentModificationException ,但是刪除完畢馬上使用break跳出,則不會觸發(fā)報(bào)錯。 iterator遍歷過程中

    2024年02月09日
    瀏覽(20)
  • Java list安全刪除元素詳解

    Java list安全刪除元素詳解

    前一段時(shí)間被問到了關(guān)于 List 集合的安全刪除元素問題。一時(shí)間沒反應(yīng)過來這問題問的是什么,安全體現(xiàn)在什么地方,線程安全?線程安全可以保證元素粒度的數(shù)據(jù)唯一嗎?刪除是指什么,list.remove()? 帶著這些疑問,重溫了一下Java的集合知識。 List為什么需要安全移除? 我

    2024年02月09日
    瀏覽(40)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包