list 鍊錶 常用成員函式

2021-09-24 17:13:22 字數 4185 閱讀 3141

在刷題過程中遇到了list中常用的函式,所以總結下來, 希望對大家有用。

#include using namespace std;
list採用鏈式儲存方法,所以list不能隨機訪問,但是在list插入和刪除元素高效。

判空:empty

語法:

bool empty();
empty()函式返回真(true)如果鍊錶為空,否則返回假。例如:

listthe_list;    

for( int i = 0; i < 10; i++ )

the_list.push_back( i );

while( !the_list.empty() )

獲取list中元素的個數 size

語法:

size_type size();
size()函式返回list中元素的數量。

增 push_back push_front insert

在鍊錶的尾部插入元素: push_back

push_back

語法:

void push_back( const type &val );  

push_back()將val連線到鍊錶的最後。例如:

listthe_list;

for( int i = 0; i < 10; i++ )

在鍊錶的首部插入元素: push_front

push_front

語法:

void push_front( const type &val );  

push_front()函式將val連線到鍊錶的頭部。

在鍊錶的指定位置上插入元素: insert

insert

語法:

iterator insert( iterator pos, const type &val );  

void insert( iterator pos, size_type num, const type &val );

void insert( iterator pos, input_iterator start, input_iterator end );

insert()插入元素val到位置pos,或者插入num個元素val到pos之前,或者插入start到end之間的元素到pos的位置。返回值是乙個迭代器,指向被插入的元素。

刪 pop_back pop_front erase clear

刪除鍊錶的最後乙個元素,但不返回鍊錶最後乙個元素的值: pop_back

pop_back

語法:

void pop_back();  

pop_back()函式刪除鍊錶的最後乙個元素。

刪除鍊錶首部的元素,但不返回鍊錶第乙個元素的值: pop_front

pop_front

語法:

void pop_front();  

pop_front()函式刪除鍊錶的第乙個元素。

刪除鍊錶指定位置上的元素: erase

erase

語法:

iterator erase( iterator pos );   

iterator erase( iterator start, iterator end );

erase()函式刪除以pos指示位置的元素, 或者刪除start和end之間的元素。 返回值是乙個迭代器,指向最後乙個被刪除元素的下乙個元素。

刪除鍊錶中的所有元素 clear

clear

語法:

void clear();  

clear()函式刪除list的所有元素。

獲取鍊錶最後乙個元素back和第乙個元素front

獲取list的最後乙個元素,但不刪除最後乙個元素:

back

語法:

reference back();  

back()函式返回乙個引用,指向list的最後乙個元素。

獲取list的第乙個元素,但不刪除第乙個元素:

front

語法:

reference front();
front()函式返回乙個引用,指向鍊錶的第乙個元素。

listthe_list;      

for( int i = 0; i < 10; i++ )

the_list.push_back( i );

while( !the_list.empty() )

遍歷鍊錶 begin end

獲取指向list第乙個元素的迭代器:

begin

語法:

iterator begin();
begin()函式返回乙個迭代器,指向list的第乙個元素。例如,

// 建立乙個元素型別是字元的鍊錶      

listcharlist;

for( int i=0; i < 10; i++ )

charlist.push_front( i + 65 );

// 顯示這個鍊錶

list::iterator theiterator;

for( theiterator = charlist.begin();

theiterator != charlist.end();

theiterator++ )

cout << *theiterator;

獲取指向list末尾的迭代器:

end

語法:

iterator end();
end()函式返回乙個迭代器,指向鍊錶的末尾。

鍊錶合併 merge

merge

語法:

void merge( list &lst );    

void merge( list &lst, comp compfunction );

merge()函式把自己和lst鍊錶連線在一起,產生乙個整齊排列的組合鍊錶。如果指定compfunction,則將指定函式作為比較的依據。

將list中的元素逆序 reverse

reverse

語法:

void reverse();
reverse()函式把list所有元素倒轉。

對list中的元素進行排序 sort

排序(sort)

語法:

void sort();    

void sort( comp compfunction );

sort()函式為鍊錶排序,預設是公升序。如果指定compfunction的話,就採用指定函式來判定兩個元素的大小。

修改鍊錶的長度 resize

修改鍊錶的大小,多餘元素用val填充: resize

resize

語法:

void resize( size_type num, type val );
resize()函式把list的大小改變到num。被加入的多餘的元素都被賦值為val

刪除鍊錶中的重複元素 unique

unique

語法:

void unique();   

void unique( binpred pr );

unique()函式刪除鍊錶中所有重複的元素。如果指定pr,則使用pr來判定是否刪除

list 鍊錶函式(小結)

先上函式 include include include include include includeusing namespace std struct node typedef struct node list list head null list current null,pre null...

C Lists(鍊錶) 成員函式

c lists 鍊錶 lists將元素按順序儲存在鍊錶中 與 向量 vectors 相比,它允許快速的插入和刪除,但是隨機訪問卻比較慢 stl中 end 指向的總是無效值,取值都用迭代器,用法跟指標差不多。assign 給 list 賦值back 返回最後乙個元素 begin 返回指向第乙個元素的迭...

鍊錶 List

stl中,list class list 的乙個例項 使用乙個doubly linked list管理元素。list不支援隨機訪問,但任何位置上執行元素的安插和移動都非常快。雙向鍊錶 doubly linked list 使用list時必須先包含標頭檔案 include其中list型別系定義於nam...