C STL之list的使用

2021-08-26 12:15:56 字數 2034 閱讀 8786

相對於vector容器的連續線性空間,list是乙個雙向鍊錶,它有乙個重要性質:

插入操作和刪除操作都不會造成原有的list迭代器失效,每次插入或刪除乙個元素就配置或釋放乙個元素空間。

也就是說,對於任何位置的元素插入或刪除,list永遠是常數時間。

常用函式

(1) 建構函式

list

c:建立乙個空的list

list

c1(c2) : 複製另乙個同型別元素的list

list

c(n) : 建立n個元素的list,每個元素值由預設建構函式確定

list

c(n, elem) : 建立n個元素的list,每個元素的值為elem

list

c(begin, end) : 由迭代器建立list, 迭代區間為[begin, end)

(2) 大小、判斷函式

int size() const:返回容器元素個數

bool empty() const : 判斷容器是否為空,若為空則返回true

(3) 增加、刪除函式

void push_back(const t& x) : list元素尾部增加乙個元素x

void push_front(const t& x) : list元素首元素錢新增乙個元素x

void pop_back() : 刪除容器尾元素,當且僅當容器不為空

void pop_front() : 刪除容器首元素,當且僅當容器不為空

void remove(const t& x) : 刪除容器中所有元素值等於x的元素

void clear() : 刪除容器中的所有元素

iterator insert(iterator it, const t& x) : 在迭代器指標it前插入元素x, 返回x迭代器指標

void insert(iterator it, size_type n, const t& x) : 迭代器指標it前插入n個相同元素x

void insert(iterator it, const_iterator first, const_iterator last) : 把[first, last)間的元素插入迭代器指標it前

iterator erase(iterator it) :刪除迭代器指標it對應的元素

iterator erase(iterator first, iterator last) : 刪除迭代器指標[first, last)間的元素

(4) 遍歷函式

iterator begin() :返回首元素的迭代器指標

iterator end() : 返回尾元素之後位置的迭代器指標

reverse_iterator rbegin() : 返回尾元素的逆向迭代器指標,用於逆向遍歷容器

reverse_iterator rend() : 返回首元素前乙個位置的迭代器指標

reference

front() : 返回首元素的引用

reference

back() : 返回尾元素的引用

(5) 操作函式

void sort() : 容器內所有元素排序,預設是公升序

templatevoid sort(pred pr) : 容器內所有元素根據預斷定函式pr排序

void swap(list& str) : 兩list容器交換功能

void unique() : 容器內相鄰元素若有重複的,則僅保留乙個

void splice(iterator it, list& li) : 佇列合併函式,佇列li所有函式插入迭代指標it前,x變成空佇列

void splice(iterator it, list& li, iterator first) : 佇列li中移走[first, end)間元素插入迭代指標it前

void splice(iterator it, list& li,iterator first, iterator last) :x中移走[first, last)間元素插入迭代器指標it前

void reverse() :反轉容器中元素順序

*/

C STL之雙向鍊錶list

一 list的基本使用以及耗時測試 include include qsort bsearch null includeusing namespace std const int size 100000 int main cout 插入1000000個元素耗時為 clock start endl c...

C STL之list雙向鍊錶容器

不同於採用線性表順序儲存結構的vector和deque容器,list雙向鍊錶中任一位置的元素查詢 插入和刪除,都具有高效的常數階演算法時間複雜度o 1 list技術原理 為了支援前向和反向訪問list容器的元素,list採用雙向迴圈的鍊錶結構組織資料元素,鍊錶的每個節點包括指向前驅的指標 實際資料和...

C STL之vector的使用

1.vector是表示可變大小陣列的序列容器。2.就像陣列一樣,vector也採用的連續儲存空間來儲存元素。也就是意味著可以採用下標對vector的元素進行訪問,和陣列一樣高效。但是又不像陣列,它的大小是可以動態改變的,而且它的大小會被容器自動處理。3.本質講,vector使用動態分配陣列來儲存它的...