簡介:
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 隨機檢索的效能非常的不好,因為...