學習STL 列表list

2021-07-04 02:49:04 字數 888 閱讀 2743

vector容器提供了對元素的快速隨機訪問,但是付出的代價是在其任意位置插入和刪除元素,比在容器尾部插入和刪除的開銷更大。與vector相比,list容器可以在任何位置快速插入和刪除,但是付出的代價是元素的隨機訪問開銷更大。

採用list的結構實現容器的基本操作與vector容器類似。list 容器與vector 容器有很多相同的介面,像 push_back()、insert()、end()、erase()等。但是list容器不支援隨機訪問,所以沒有下標操作符。

list 相對 vector 的新增加的部分介面:

在列表的第乙個元素前插入新元素

void

push_front(const value_type& __x)

刪除列表的第乙個元素

void

pop_front()

刪除所有值為 _value的元素

void

remove(const _tp& __value);

刪除所有相鄰的相同元素,只保留乙個

void

unique();

與有序列表 _x 求並集,構成新的有序列表,原列表應為有序列表

void

merge(list& __x);

將所有的元素次序倒置

void

reverse()

將所有元素按照從小到大的次序排列

void

sort();

STL 順序容器 列表list

list和雙向鍊錶結構相似,每個節點包含乙個資料塊,前向指標,和後向指標,儲存在非連續的記憶體空間中 很顯然,查詢操作時,只能順序查詢,不支援內部隨機訪問 不像陣列,向量vectoer,佇列可以用下標查詢 但是可以在任意序列位置插入和刪除,這是vector和queue deque 無法比擬的 而且相...

list列表學習

鍊錶的核心是乙個雙向鍊錶 list的資料元素是通過指標串聯成的邏輯意義上的線性表 優點 在鍊錶的任一位置進行元素的插入 刪除操作都是快速的。list每個節點有三個域 前驅元素指標域 資料域 後繼元素指標域。頭節點的前驅元素指標域儲存的是尾元素的首位址,尾結點的後繼元素指標域儲存的是頭節點的首位址。l...

STl學習筆記 鍊錶(list)

1.定義 標頭檔案 list 比單向鍊錶多了個指向前方的指標 vector 隨機訪問快,即下標運算,指哪打哪 尾新增,不申請空間的情況下非常快 不支援快速插入和刪除,比較慢 list 隨機訪問慢,也支援下標 支援快速插入和刪除 鍊錶先連後斷 關鍵字 引數列表 變數名 關鍵字 容器名字 類名 引數列表...