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

STL--list如何實現(xiàn)元素的插入和刪除

這篇具有很好參考價值的文章主要介紹了STL--list如何實現(xiàn)元素的插入和刪除。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

STL--list如何實現(xiàn)元素的插入和刪除,C++學(xué)習(xí),C++STL標(biāo)準(zhǔn)庫,c++,list,開發(fā)語言


在C++標(biāo)準(zhǔn)模板庫(STL)中,std::list 是一個雙向鏈表。由于它的雙向鏈表特性,std::list 支持在任何位置高效地插入和刪除元素。
元素插入:
●使用 push_back() 在列表尾部添加元素;
●使用 push_front() 在列表頭部添加元素;
●使用 insert() 在指定位置插入元素。這需要一個迭代器指向插入點,插入操作之后迭代器將指向新插入的元素。
元素刪除:
●使用 pop_back() 刪除列表尾部元素;
●使用 pop_front() 刪除列表頭部元素;
●使用 erase() 刪除指定位置的元素。這同樣需要一個迭代器指向要刪除的元素;
●使用 remove() 刪除所有與指定值相等的元素。
由于鏈表的每個元素都是獨立的節(jié)點,插入或刪除操作不需要移動其它元素,因此這些操作通常都是常數(shù)時間復(fù)雜度(O(1)),這也是鏈表結(jié)構(gòu)的優(yōu)點之一。
示例應(yīng)用場景:
●當(dāng)實現(xiàn)一個任務(wù)隊列,且任務(wù)有不同的優(yōu)先級時,可以使用 insert() 將高優(yōu)先級的任務(wù)插入到適當(dāng)?shù)奈恢谩?br> ●在游戲開發(fā)中,可能需要管理多個動態(tài)生成和銷毀的對象,使用 std::list 可以有效地插入和刪除這些對象。
示例代碼:
?

#include <list>
#include <iostream>

int main() {
    std::list<int> mylist;

    // 在列表末尾插入元素
    mylist.push_back(1);
    mylist.push_back(2);
    mylist.push_back(3);

    // 在列表頭部插入元素
    mylist.push_front(0);

    // 在第二個元素之后插入一個元素
    auto it = mylist.begin();
    std::advance(it, 2);
    mylist.insert(it, 5);

    // 刪除第二個元素
    it = mylist.begin();
    std::advance(it, 1);
    mylist.erase(it);

    // 刪除所有值為3的元素
    mylist.remove(3);

    // 打印列表的元素
    for (int n : mylist) {
        std::cout << n << '\n'; // 應(yīng)該打印出 0, 1, 5
    }

    return 0;
}

在這段代碼中,我們首先在 std::list 的頭部和尾部插入了元素,然后找到了第二個元素的位置并在其后插入了一個新元素,接著刪除了特定位置的元素,最后刪除了所有值為3的元素。


本篇完!文章來源地址http://www.zghlxwxcb.cn/news/detail-848911.html

到了這里,關(guān)于STL--list如何實現(xiàn)元素的插入和刪除的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • C++——STL標(biāo)準(zhǔn)模板庫——容器詳解——list

    C++——STL標(biāo)準(zhǔn)模板庫——容器詳解——list

    list:雙向鏈表。list是一種分布式存儲的線性表,每個節(jié)點分為數(shù)據(jù)域和指針域,其中指針域中包含一個指向前驅(qū)節(jié)點的指針和一個指向后續(xù)節(jié)點的指針,基本模型如下: 1、雙向鏈表:每個元素都有一個前驅(qū)和一個后繼,這種結(jié)構(gòu)允許在鏈表的任何位置實現(xiàn)快速的插入和刪除

    2024年01月16日
    瀏覽(21)
  • 【C++STL標(biāo)準(zhǔn)庫】序列容器之deuqe與、orwa_list與list

    基本概念這里就不再浪費時間去解釋,這里給出deuqe與、orwa_list、list的基本使用方法: deque隊列: forward_list單向列表: list雙向鏈表: 如果發(fā)現(xiàn)文章中有錯誤,還請大家指出來,我會非常虛心地學(xué)習(xí),我們一起進步?。?!

    2024年02月15日
    瀏覽(17)
  • O(1)插入、刪除和隨機元素[中等]

    O(1)插入、刪除和隨機元素[中等]

    優(yōu)質(zhì)博文:IT-BLOG-CN 實現(xiàn) RandomizedSet 類: 【1】 RandomizedSet() 初始化 RandomizedSet 對象。 【2】 bool insert(int val) 當(dāng)元素 val 不存在時,向集合中插入該項,并返回 true ;否則,返回 false 。 【3】 bool remove(int val) 當(dāng)元素 val 存在時,從集合中移除該項,并返回 true ;否則,返回 fal

    2024年01月19日
    瀏覽(22)
  • java List 刪除 元素

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

    2024年02月15日
    瀏覽(19)
  • python 一次性刪除列表(list)的空白元素(空內(nèi)容) 或者 一次性刪除列表(list)中的指定元素

    看看下述代碼: 輸出: 當(dāng)你遇見這種情況,有哪些方法來去除里面的空內(nèi)容呢(即 \\\'\\\' )? 1.1 刪除空內(nèi)容(方法一) : 輸出: 1.2 刪除空內(nèi)容(方法二) : 需要 配合 lambda 表達(dá)式 一起使用! 輸出: 2.3 刪除指定內(nèi)容 : 輸出: 注 :此方法既可以刪除空元素,也可以刪除指

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

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

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

    Java list安全刪除元素詳解

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

    2024年02月09日
    瀏覽(40)
  • Java List循環(huán)安全刪除元素

    Java List循環(huán)安全刪除元素的幾種方式如下: 使用迭代器(Iterator):通過調(diào)用List的iterator()方法獲取List的迭代器,然后使用迭代器的remove()方法刪除元素。這種方式可以避免在遍歷過程中修改List導(dǎo)致的并發(fā)修改異常(ConcurrentModificationException)。 示例代碼: 使用Java 8的Stream

    2024年02月11日
    瀏覽(22)
  • list刪除重復(fù)元素幾種思路

    list刪除重復(fù)元素幾種思路

    distinct()是Java 8 中 Stream 提供的方法,返回的是由該流中不同元素組成的流。distinct()使用 hashCode() 和 eqauls() 方法來獲取不同的元素。 因此,需要去重的類必須實現(xiàn) hashCode() 和 equals() 方法。換句話講,我們可以通過重寫定制的 hashCode() 和 equals() 方法來達(dá)到某些特殊需求的去重

    2024年02月14日
    瀏覽(22)
  • List集合刪除指定元素-四種方法

    List集合刪除指定元素-四種方法

    第一種 for循環(huán) 輸出結(jié)果為 第二種 迭代器 輸出結(jié)果為 第三種 stream流 這種過濾是留下符合條件的元素 輸出結(jié)果為 第四種 removeIf 方法以及 方法引用 removeIf 方法是jdk1.8 Collection以及其子類新增的,作用是過濾指定條件的元素 輸出結(jié)果為 總結(jié) 不言而喻,第四種方法最好用。

    2024年02月09日
    瀏覽(26)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包