1. 程式人生 > >C++ STL list詳解

C++ STL list詳解

c++ back main 雙向鏈表 第一個元素 cti ans :link 獲得

一.解釋:

list是一種序列式容器。list容器完成的功能實際上和數據結構中的雙向鏈表是極其相似的,list中的數據元素是通過鏈表指針串連成邏輯意義上的線性表,list不僅是一個雙向鏈表,而其還是一個環狀雙向鏈表。所以它只需要一個指針,便可以完整實現整個鏈表。list有一個重要性質:插入操作(insert)和合並操作(splice)都不會 造成原有的list叠代器失效。甚至 list的元素刪除操作(erase)也只有“指向被刪除元素”的那個叠代器失效,其他叠代器不受任何影響。

二.常用操作:

  1.頭文件

#include<list>

  2.定義

list<string
> test; //定義一個string類型的list

  3.常用函數

push_front(x):把元素x推入(插入)到鏈表頭部
push_back(x):把元素x推入(插入)到雙向隊列的尾部
pop_front():彈出(刪除)雙向隊列的第一個元素
pop_back():彈出(刪除)雙向隊列的最後一個元素
begin():返回向量中第一個元素的叠代器
clear(): 清空list中的所有元素。
empty():利用empty() 判斷list是否為空。
front(): 獲得list容器中的頭部元素
back(): 獲得list容器的最後一個元素。

三.例子

#include <iostream>
#include
<string> #include<list> using namespace std; typedef list<string> LISTSTR; int main() { LISTSTR test; test.push_back("back"); //back test.push_front("middle"); //middle back test.push_front("front"); //
front middle back cout<<test.front()<<endl; //front cout<<*test.begin()<<endl; //front cout<<test.back()<<endl; //back cout<<*(test.rbegin())<<endl; //back test.pop_front(); //middle back test.pop_back(); //middle cout<<test.front()<<endl; //middle }

C++ STL list詳解