一、什么是 list?
list 容器,又稱雙向鏈表容器,即該容器的底層是以雙向鏈表的形式實現的。這意味著,list 容器中的元素可以分散存儲在內存空間里,而不是必須存儲在一整塊連續的內存空間中。跟任意其它類型容器一樣,它能夠存放各種類型的對象。
二、容器特性
1.線性存儲(非連續)
list是由多個節點組成的。
2.雙向鏈表
list 容器具有一些其它容器(array、vector 和 deque)所不具備的優勢,即它可以在序列已知的任何位置快速插入或刪除元素(時間復雜度為O(1)
)。并且在 list 容器中移動元素,也比其它容器的效率高。
3.支持隨機訪問迭代器(下一章介紹)
不支持隨機訪問迭代器,只能從容器中第一個元素或最后一個元素開始遍歷容器,直到找到該位置。
三、基本函數實現
1,構造函數
- list();創建一個空list
- list(int nSize);創建一個list,元素個數為nSize
- list(int nSize,const t& t);創建一個list,元素個數為nSize,且值均為t
- list(const list&);復制構造函數
- list(begin,end);復制[begin,end)區間內另一個數組的元素到list中
2.增加函數
- void push_back(const T& x); 尾部增加一個元素X
- void push_front(const T& x); 頭部增加一個元素X
- iterator insert(iterator it,const T& x);鏈表中迭代器指向元素前增加一個元素x
- iterator insert(iterator it,int n,const T& x);鏈表中迭代器指向元素前增加n個相同的元素x
- iterator insert(iterator where,const_iterator first,const_iterator last);鏈表中迭代器指向元素前插入另一個相同類型鏈表的[first,last)間的數據
3.刪除函數
- iterator erase(iterator it);刪除鏈表中迭代器指向元素
- iterator erase(iterator first,iterator last);刪除鏈表中[first,last)中元素
- void pop_back();刪除鏈表中最后一個元素
- void pop_front();刪除鏈表中的第一個元素
- void clear();清空鏈表中所有元素
4.遍歷函數
- reference front();返回首元素的引用
- reference back();返回尾元素的引用
- iterator begin();返回鏈表頭指針,指向第一個元素
- iterator end();返回鏈表尾指針,指向鏈表最后一個元素的下一個位置
- reverse_iterator rbegin();反向迭代器,指向最后一個元素
- reverse_iterator rend();反向迭代器,指向第一個元素之前的位置
5.判斷函數
- bool empty() const;判斷容器中是否有元素,若無元素,則返回 true;反之,返回 false。
6.大小函數
- int size() const;返回鏈表中元素的個數
- int max_size() const;返回最大可允許的list元素數量值
7.其他函數
- void swap(list&);交換兩個同類型鏈表的數據
- void assign(int count,const T& x); 把鏈表元素設置為count個,每個元素都是x
四、基本用法
#include
#include
using namespace std;
int main()
{
list<int> ls;
for (int i = 0; i < 10; i++)
{
ls.push_back(i);
}
for (auto i : ls)
{
cout << i << " ";
}
cout << endl;
while (!ls.empty())//如果鏈表不為空就一直刪除尾部元素
{
cout<
童孩~你又廢了?多多練習哦,光看是學不會的
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
內存
+關注
關注
8文章
3019瀏覽量
74003 -
容器
+關注
關注
0文章
495瀏覽量
22060 -
鏈表
+關注
關注
0文章
80瀏覽量
10558
發布評論請先 登錄
相關推薦
交流電源List波形編輯功能如何使用
很多朋友們對于交流電源中的List波形編輯功能只限于知道有此功能,但不知道如何操作。為此,今天博宇訊銘工程師以全天交流電源為測試儀器,針對List波形編輯功能進行實際操作,希望能夠幫助到有需要的朋友們,更好的應用交流電源List
OpenHarmony語言基礎類庫【@ohos.util.List (線性容器List)】
List底層通過單向鏈表實現,每個節點有一個指向后一個元素的引用。當需要查詢元素時,必須從頭遍歷,插入、刪除效率高,查詢效率低。List允許元素為null。
Allwinner Technology Nand Flash Support List
Allwinner Technology Nand Flash Support List—全志科技NAND Flash支持列表。
發表于 09-26 16:31
?2次下載
Allwinner Axx SDRAM Support List
Allwinner Axx SDRAM Support List——全志分SDRAM支持列表。
發表于 09-26 16:31
?8次下載
Python基礎變量類型—List分析
本文基于Python基礎,主要介紹了Python基礎中list列表,通過list列表的兩個函數 ,對list的語法做了詳細的講解,用豐富的案例 ,代碼效果圖的展示幫助大家更好理解 。
List 轉 Map的方法
在我們平時的工作中,充滿了各種類型之間的轉換。今天小編帶大家上手 List 轉 Map 的各種操作。 我們將假設 List 中的每個元素都有一個標識符,該標識符將在生成的 Map 中作為一個鍵
交流電源List波形編輯功能如何使用?
交流電源List波形編輯功能如何使用? 交流電源List波形編輯功能是一種用于生成和編輯交流電源波形的工具。它通常被應用于電力系統仿真、電氣工程設計、電子設備測試等領域。下面將詳細介紹交流電源
評論