STL學習筆記 list容器 雙鏈表

2021-07-06 01:53:08 字數 895 閱讀 9716

簡介:

list是雙向鍊錶容器,可以高效地進行插入和刪除元素

list不可以隨機訪問元素,所以不支援at(pos)和[ ]操作

list的迭代器可以 it++,但是不能例如 it + 5

標頭檔案:

#include

list基本操作:

front()

back()

push_back()

pop_back()  

push_front()

pop_front()  

遍歷可以用迭代器

list插入元素:

listl;

l.push_back(1);

l.push_back(2);

l.push_back(3);

l.push_back(4);

list::iterator it;

it++; it++; it++;

l.insert(it, 100); //注意,100插在元素3的前面的

鍊錶插入時的結論:

鍊錶結點index序號是從0開始的

在n號位置插入元素,是讓該元素佔據n號位置,讓原來的n號元素變成n+1號元素,以此類推

list刪除元素:

clear(); //刪除list中的所有元素

erase(beg,end); // 刪除[beg, end)區間的資料,返回下乙個資料的位置

erase(pos); // 刪除pos位置的元素,返回下乙個資料的位置

remove(elem); // 刪除容器中所有與elem匹配的元素

STL學習筆記 序列式容器list

由於vector的使用,經常會出現迭代器錯誤,主要是因為vector在每次更改完資料就會重新配置,迭代器就會失效,list的結構和vector的設計差異決定了list在這方面具有優越性,list的insert和splice操作不會造成迭代器失效,並且erase也只會是讓當前元素的迭代器失效。list...

C 學習筆記 STL常用容器 list

list容器的功能 將資料進行鏈式儲存。stl中的鍊錶是乙個雙向迴圈鍊錶。list的優點 採用動態儲存分配,不會造成記憶體浪費和溢位 執行插入和刪除方便,修改指標的指向即可,不需要移動大量元素。list的缺點 空間 指標域 和時間 遍歷 耗費較大。list插入和刪除元素不會造成原有的迭代器的失效。l...

STL順序容器 list

list是乙個線性鍊錶結構,它的資料由若干個節點構成,每乙個節點都包括乙個 息塊 即實際儲存的資料 乙個前驅指標和乙個後驅指標。它無需分配指定 記憶體大小且可以任意伸縮,這是因為它儲存在非連續的記憶體空間中,並且由指 針將有序的元素鏈結起來。由於其結構的原因,list 隨機檢索的效能非常的不好,因為...