STL list容器的使用 C

2021-05-28 07:21:49 字數 2382 閱讀 7436

list 的使用

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

1)、如何定義乙個list物件

#include int main (void)

2)、使用list的成員函式push_back和push_front插入乙個元素到list中
clist. push_back(『a』); //把乙個物件放到乙個list的後面

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

3)、使用list的成員函式empty()判斷list是否為空
if (clist.empty())

4)、用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支援隨機訪問。

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

int cnum;

char ch = 』b』;

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

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

6)、用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()更加複雜的評估以確定乙個物件是否應該被記數。

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

list::iterator finditerator;

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

if (finditerator == clist.end())

else

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

8)、使用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的指標。

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

clist.sort();
10)、使用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指出的位置以前。

11)、如何在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』);

C 順序容器 STL list類

1 例項化std list物件 include lista 2 在list開頭插入元素 a.push front 2 3 在list末尾插入元素 b.push back 100 4 在list中間插入元素 iter a.begin iter a.insert iter,10 iter a.inser...

演算法c 之stl list詳細使用

include using namespace std list的詳細使用 lists將元素按順序儲存在鍊錶中.與 向量 vectors 相比,它允許快速的插入和刪除,但是隨機訪問卻比較慢.list int l list是鍊錶陣列 int main remove val 刪除所有值為val的元素 v...

STL list 使用指南

眾所周知,stl是有封裝好的鍊錶的而且是雙端鍊錶!現在我們就來談一談list的使用 首先 incldue list l 標頭檔案外加申請乙個char形式的list.對於這個東西我們可以做什麼呢?insert erase size empty都滋磁哦。定義乙個迭代器 list iterator it ...