特性總結:
1. list建構函式
list lst;
//採用模板類實現,物件的預設構造形式;
list
;//建構函式將[beg, end)前閉後開區間中的元素拷貝給本身;
list
;//建構函式將n個elem拷貝被本身;
list
(const list &lst)
;//拷貝建構函式;
push_back
(elem)
;//在尾部加入乙個元素
pop_back()
;//刪除容器中最後乙個元素
push_front
(elem)
;//在開頭加入乙個元素
pop_front()
;//刪除容器中開頭第乙個元素
insert
(pos, elem)
;//在pos位置插入elem元素的拷貝,返回新資料的位置
insert
(pos,n,elem)
;//在pos位置插入n個elem元素,無返回值
insert
(pos,beg,end)
;//在pos位置插入[beg, end)前閉後開區間中的元素,無返回值
clear()
;//移除容器中所有資料
erase
(beg,end)
;//刪除[beg, end)前閉後開區間中的元素
erase
(pos)
;//刪除pos位置的資料,返回下一資料的位置
remove
(elem)
;//刪除容器中所有與elem元素相匹配的元素
size()
;empty()
;resize
(num)
;resize
(num,elem)
;//重新制定長度為num,若容器變長,以elem元素填充;
//若變短,末尾超出長度部分刪除;
assign
(beg,end)
;//將[beg, end)前閉後開區間中元素拷貝賦值給本身
assign
(n,elem)
;//將n個elem元素拷貝賦值給本身
list&
operator=(
const list &lst)
;//過載等號
swap
(lst)
;//將lst與本身元素互換
front()
;//返回第乙個元素
back()
;//返回最後乙個元素
reverse()
;//反轉鍊錶,如原來 3 8 1,反轉後 1 8 3
sort()
;//list排序
說明:這裡list本身提供了排序方法;
因為演算法中的sort 支援可隨機訪問的,而list不支援隨機訪問;
#define _crt_secure_no_warnings
#include
#include
using
namespace std;
void
printlist
(list<
int>
& mlist)
cout << endl;
}//初始化
void
test01()
//list容器插入刪除
void
test02()
//(*(mlist.end()));
cout <<
"------------"
<< endl;
cout <<
(*testit)
<< endl;
cout << mlist.
back()
<< endl;
cout <<
"------------"
<< endl;
}//賦值操作
void
test03()
//排序 翻轉
void
test04()
printlist
(mlist)
;//容器元素反轉
mlist.
reverse()
; cout <<
"resverse list test: "
<< endl;
printlist
(mlist);}
bool
mycompare05
(int v1,
int v2)
//排序
void
test05()
intmain
(void
)
程式執行結果:
鍊錶和陣列的區別:
C 容器之鍊錶list
include using namespace std list是動態鍊錶,跟vector一樣,是個類模板 list int list int 定義了乙個內部元素是int的鍊錶 list char list char 定義了乙個內部元素是char的鍊錶 listlist student 定義了乙個內...
C STL之list雙向鍊錶容器
不同於採用線性表順序儲存結構的vector和deque容器,list雙向鍊錶中任一位置的元素查詢 插入和刪除,都具有高效的常數階演算法時間複雜度o 1 list技術原理 為了支援前向和反向訪問list容器的元素,list採用雙向迴圈的鍊錶結構組織資料元素,鍊錶的每個節點包括指向前驅的指標 實際資料和...
STL容器之list鍊錶使用
目錄 一 list的概念理解 二 建構函式 三 元素插入和刪除 四 資料訪問 五 大小操作 六 反轉和排序 list鍊錶是將資料元素進行鏈式儲存,在物理單元上是非連續的結構,與vector動態陣列不同,陣列是一片連續的記憶體空間,list鍊錶是由一系列節點組成,而節點是由乙個儲存資料元素的資料域和乙...