STL模板整理 list

2022-05-26 11:54:10 字數 1521 閱讀 5522

list容器是一種序列式容器,它是stl實現的雙向鍊錶,與vector相比它可以實現快速的插入和刪除,但是不能夠快速的隨機訪問。

#include

list() 宣告乙個空列表;

list(n) 宣告乙個有n個元素的列表,每個元素都是由其預設建構函式t()構造出來的

list(n,val) 宣告乙個由n個元素的列表,每個元素都是由其複製建構函式t(val)得來的

list(first,last) 宣告乙個列表,其元素的初始值**於由區間所指定的序列中的元素

listlst1;          //建立空list

listlst2(5);       //建立含有5個元素的list

listlst3(3,2);  //建立含有3個元素的list

listlst4(lst2);    //使用lst2初始化lst4

listlst5(lst2.begin(),lst2.end());  //同lst4

list中常用的函式:

push_back() 和push_front():使用list的成員函式push_back和push_front插入乙個元素到list中。其中push_back()從list的末端插入,而 push_front()實現的從list的頭部插入。

empty():利用empty() 判斷list是否為空。

resize(): 如果呼叫resize(n)將list的長度改為只容納n個元素,超出的元素將被刪除,如果需要擴充套件那麼呼叫預設建構函式t()將元素加到list末端。如果呼叫resize(n,val),則擴充套件元素要呼叫建構函式t(val)函式進行元素構造,其餘部分相同。

clear(): 清空list中的所有元素。

front()和back(): 通過front()可以獲得list容器中的頭部元素,通過back()可以獲得list容器的最後乙個元素。但是有一點要注意,就是list中元素是空的時候,這時候呼叫front()和back()會發生什麼呢?實際上會發生不能正常讀取資料的情況,但是這並不報錯,那我們程式設計序時就要注意了,個人覺得在使用之前最好先呼叫empty()函式判斷list是否為空。

pop_back和pop_front():通過刪除最後乙個元素,通過pop_front()刪除第乙個元素;序列必須不為空,如果當list為空的時候呼叫pop_back()和pop_front()會使程式崩掉。

reverse():通過reverse()完成list的逆置。

swap():交換兩個鍊錶(兩個過載),乙個是l1.swap(l2); 另外乙個是swap(l1,l2),都可能完成連個鍊錶的交換。

front()和back():返回第乙個元素。返回最後乙個元素。

erase():刪除乙個元素或乙個區域的元素(兩個過載)l.erase(l.begin()); 將l的第乙個元素刪除。l.erase(l.begin(),l.end()); 將l的從begin()到end()之間的元素刪除。

sort():給list中的元素進行排序。

splice():合併兩個list l1.splice(l1.end(),l2)    //合併為l1並且將l2清空。

STL模板整理 priority queue

優先佇列是佇列的一種,不過它可以按照自定義的一種方式 資料的優先順序 來對佇列中的資料進行動態的排序,每次的push和pop操作,佇列都會動態的調整,以達到我們預期的方式來儲存。定義 priority queue p 最大值優先,是大頂堆一種簡寫方式 priority queue,greater q...

STL模板整理 set

set作為乙個容器也是用來儲存同一資料型別的資料型別,並且能從乙個資料集合中取出資料,在set中每個元素的值都唯一,而且系統能根據元素的值自動進行排序。應該注意的是set中數元素的值不能直接被改變。1.begin 返回指向第乙個元素的迭代器 2.clear 清除所有元素 3.count 返回某個值元...

STL模板整理 vector

1 c 標準模板庫與c 標準庫的關係 c 標準模板庫其實屬於c 標準庫的一部分,c 標準模板庫主要是定義了標準模板的定義與宣告,而這些模板主要都是 類模板,我們可以呼叫這些模板來定義乙個具體的類 與之前的自己手動建立乙個函式模版或者是類模板不一樣,我們使用了 stl就不用自己來建立模板了,這些模板都...