STL標準模板庫 list的使用

2021-05-28 15:31:56 字數 2747 閱讀 9688

zz 李木空間 www.limou.net

在使用list必須包括標頭檔案#include

#include int main (void)

使用list的成員函式push_back和push_front插入乙個元素到list中

clist. push_back(『a』); //把乙個物件放到乙個list的後面

clist. push_front (『b』); //把乙個物件放到乙個list的前面

使用list的成員函式empty()判斷list是否為空

if (clist.empty())

用list< char >::iterator得到指向list的指標

list< char>::iterator chariterator;

for(citerator = clist.begin();citerator != clist.end();citerator++)

//輸出list中的所有物件

說明:clist.begin()和clist.end()函式返回指向list< char >::iterator的指標,由於list採用鍊錶結構,因此它不支援隨機訪問,因此不能用clist.begin()+3來指向list中的第 四個物件,vector和deque支援隨機訪問。

用stl的通用演算法count()來統計list中的元素個數

int cnum;

char ch = 』b』;

cnum = count(clist.begin(), clist.end(), ch); //統計list中的字元b的個數

說明:在使用count()函式之前必須加入#include

用stl的通用演算法count_if ()來統計list中的元素個數

const char c(『c』);

class isc

};int numc;

numc = count_if (clist.begin(), clist.end(),isc());//統計c的數量;

說明:count_if() 帶乙個函式物件的引數,函式物件是乙個至少帶有乙個operator()方法的類函式物件被約定為stl演算法呼叫operator時返回true或 false。它們根據這個來判定這個函式。舉個例子會 說的更清楚些。count_if()通過傳遞乙個函式物件來作出比count()更加複雜的評估以確定乙個物件是否應該被記數。

使用stl通用演算法find()在list中查詢物件

list::iterator finditerator;

finditerator = find(clist.begin(), clist.end(), 『c』);

if (finditerator == clist.end())

else

說明:如果沒有找到指定的物件,就會返回clist.end()的值,找到了就返回乙個指向物件iterator的指標。

使用stl通用演算法find_if()在list中查詢物件

const char c(『c』);

class c

};list::iterator finditerator

finditerator = find_if (clist.begin(), clist.end(),isc());//查詢字串c;

說明:如果沒有找到指定的物件,就會返回clist.end()的值,找到了就返回乙個指向物件iterator的指標。

使用list的成員函式sort()排序

clist.sort();

使用list的成員函式insert插入乙個物件到list中

clist.insert(cliset.end, 『c』); ///在list末尾插入字元『c』

char ch[3] =;

clist.insert(clist.end, &ch[0], & ch[3] ); //插入三個字元到list中

說明:insert()函式把乙個或多個元素插入到指出的iterator位置。元素將出現在 iterator指出的位置以前。

如何在list中刪除元素

clist.pop_front(); //刪除第乙個元素

clist.pop_back(); //刪除最後乙個元素

clist. erase(clist.begin()); //使用iterator刪除第乙個元素;

clist. erase(clist.begin(), clist.end()); //使用iterator刪除所有元素;

clist.remove(『c』); //使用remove函式刪除指定的物件;

list::iterator newend;

//刪除所有的』c』 ,並返回指向新的list的結尾的iterator

newend = clist.remove(clist.begin(), clist.end(), 『c』);

STL標準模板庫 list

原 2017年02月26日 21 12 15 老樊lu碼 閱讀數 46880 更多分類專欄 c 資料結構 c c c 開發實戰365 一 list定義 list是stl實現的雙向鍊錶,與向量 vectors 相比,它允許快速的插入和刪除,但是隨機訪問卻比較慢。使用時需要新增標頭檔案 include ...

STL模板庫list使用

list 宣告乙個空列表 list n 宣告乙個有n個元素的列表,每個元素都是由其預設建構函式t 構造出來的 list n,val 宣告乙個由n個元素的列表,每個元素都是由其複製建構函式t val 得來的 list n,val 宣告乙個和上面一樣的列表 list first,last 宣告乙個列表,...

標準模板庫(STL)使用 vector

或許你已經把 c 作為主要的程式語言用來解決 topcoder 上的問題。這意味著你已經簡單使用過了 stl,因為陣列和字串都是作為 stl 物件傳遞給函式。也許你已經注意到了,很多程式設計師寫 比你快得多,也更簡潔。或許你還不是但想成為一名 c 程式猿,因為這種程式語言功能很強大還有豐富的庫 也許...