list是一種雙向鍊錶結構,可以從第乙個元素開始刪除、插入,也可以從最後乙個元素刪除、插入,下面介紹一下 list 中常用的幾個函式;
一、list 中的 begin 和 end 函式 ;
和其他幾種資料結構差不多,都是用來從第乙個元素,訪問到最後乙個元素,返回的是當前指標;
listl ;
*(l.begin()) // 輸出第乙個元素
*(l.end()) // 輸出最後乙個元素的下乙個元素
二、list 中的 rbegin 和 rend 函式
也和其他幾種資料結構差不多,從最後乙個元素訪問到第乙個元素; 返回值如果需要存入乙個變數中,這個變數應該這樣定義
list::reverse_iterator iter ;
listl ;
iter = l.rbegin() ;
*iter // 輸出最後乙個元素
iter = l.rend() ;
*iter // 輸出第乙個元素前面的乙個元素
三、list 中的 empty 函式
listl ;
l.empty() ; // 如果鍊錶為空則返回 true ,否則返回 false ;
四、list 中的 size 函式
listl(5 , 10) ;
l.size() ; // 返回鍊錶中元素的個數
五、list 中的 front 和 back 函式
listl(5,10) ;
l.front() ; // 返回第乙個元素
l.back() ; // 返回最後乙個元素
六、list 中的 assign 函式
assign 函式用來對鍊錶物件的重新分配 ;
listl1 ;
listl2 ;
l1.assign(5,10) ; // 向鍊錶中新增 5 個元素 10 ;
l1.assign(5,11) ; // 把原來的 5 個元素 10 改為 11 ;
l2.assign( l1.begin() , l1.end() ) ; 將l1中的元素複製給l2 ;
int a = ;
l2.assign(a,a+5) ; // 把陣列 a 中的資料複製到 l2 中 ;
七、list 中的 push_front、push_back、pop_front、pop_back 函式
這幾個函式就是雙向鍊錶的特殊之處,可以從頭插入、刪除,也可以從尾部插入和刪除
listl(5,10) ;
l.push_back(5) ; // 從最後插入乙個元素 5 ;
l.pop_back() ; // 刪掉最後乙個元素
l.push_front(5) ; //在第乙個元素前面插入乙個元素 5 ;
l.pop_front() ; // 將第乙個元素刪除掉
八、list 中的 insert 函式
insert 函式中的引數可以有兩個,也可以由三個,當引數有兩個時,第乙個代表在某個元素的前面,第二個引數代表要插入的數值;
當引數有三個時,第乙個代表在某個元素之前插入,第二個元素和第三個元素代表要插入的範圍;
listl(5,10) ;
l.insert(l.begin(),5) ; //在第乙個元素前插入乙個元素 5 ;
l.insert(l.begin(),5,2) ; // 在第乙個元素前插入 5 個元素 2 ;
int a = ;
l.insert(l.begin(),a,a+5) ; // 將陣列 a 插入到第乙個元素之前 ;
九、list 中的 erase 函式
erase 用來刪除鍊錶中的資料元素
listl(5,10) ;
l.erase(l.begin()) ; //刪除鍊錶中的第乙個元素
l.erase( l.begin() , l.end() ) // 刪除鍊錶中的所有元素,相當於 l.assign(0) ;
十、list 中的 resize 函式
resize 和 其他資料結構一樣,重新分配鍊錶的大小 ;
listl(5,10) ;
l.resize(3) ; // 將鍊錶中原來的 5 個元素,縮短為現在的 3 個元素 ;
l.resize(8) ; // 將鍊錶中原來的 3 個元素,擴大為現在的 8 個元素,擴大部分預設賦初值為 0 ;
l.resize(10,2) ; // 將鍊錶中原來的 8 個元素,擴大為現在的 10 個元素,擴大部分賦值為 2 ;
十一、list 中的 clear 函式
listl(5,10) ;
l.clear() ; // 清空鍊錶中的所有元素, 相當於l.assign(0) , 還相當於l.erase(l.begin() , l.end()) ;
List雙向鍊錶
include 宣告 list int mylist 定義 mylist.push front 1 頭部插入元素 mylist.push back 2 尾部插入元素 pop front 移除頭部元素 pop back 移除尾部元素 list int iterator lter 迭代器定義 iter ...
List環形雙向鍊錶
實現乙個環形的雙向鍊錶,鍊錶的每個節點都儲存三個資訊,當前節點的值value,前乙個節點的指標prev,後乙個節點的指標next。因為是環形的,所以最後乙個節點的next指向第乙個節點,而第乙個節點的prev指向最後乙個節點 如果只存在乙個節點,那麼這個節點的prev和next都會指向這個節點本身。...
c stl的list(雙向鍊錶)
1.list初始化 1 listt 沒有任何元素 2 listt 10 建立有 10個元素的鍊錶 3 listt 10,3 建立有 10個元素的鍊錶,並且每個元素為3 2.對鍊錶進行插入操作 1 前插法 在鍊錶頭部插入新元素,鍊錶自動擴張,形式 t.push front 8 2 尾插法 在鍊錶尾部插...