容器篇 list容器(上)

2021-10-11 21:30:13 字數 2146 閱讀 2697

基於vs2017編譯通過

#include

#include

#include

using

namespace std;

void

printlist

(list<

int>

& list)

//構造初始化

void

test01()

; list<

int>

list5

(arr, arr +

sizeof

(arr)

/sizeof

(int))

;//陣列構造

printlist

(list4);}

//賦值操作

void

test02()

//插入,刪除操作

void

test03()

; list1.

insert

(list1.

begin()

, arr, arr +

sizeof

(arr)

/sizeof

(int))

;//printlist

(list1)

; list<

int>

::iterator it = list1.

begin()

;//it += 3; //list中的迭代器不支援隨機訪問,必須每次只移動一次

//it += 1; //錯誤,只能++操作,即使是+1也是錯誤的

it++

; it++

; it++

;//好比在list1.begin()+3的位置插入

list1.

insert

(it, arr, arr +

sizeof

(arr)

/sizeof

(int))

;printlist

(list1)

;//clear(); //移除容器的所有資料

//erase(beg, end); //刪除[beg,end)區間的資料,返回下乙個資料的位置

//erase(pos); //刪除pos位置的資料,返回下乙個資料的位置

//remove(elem); //刪除容器中所有與elem值匹配的元素

list<

int>

::iterator itt = list1.

begin()

; itt++

; itt++

; itt++

; list1.

erase

(list1.

begin()

, itt)

;printlist

(list1)

; list1.

remove(33

);printlist

(list1);}

//大小操作

void

test04()

//資料訪問

void

test05()

bool

mycompare

(int v1,

int v2)

//反轉及排序

void

test06()

/////對於自定義型別來說,必須通過普通函式 或 仿函式來指定排序方式,否則呼叫sort()函式時將編譯報錯!

//排序案例(類)

class

person

~person()

public

: string name;

int age;

int height;};

//按照年齡公升序,如果年齡相同,則按照公升高降序

//可以通過自定義函式 和 自定義仿函式進行排序

//自定義函式

bool

compare

(person p1, person p2)

}//仿函式

class

_funciton}}

;void

test()

intmain()

容器篇 string容器(上)

include include using namespace std 建構函式 void test01 intmain include include using namespace std 賦值操作 void test01 void test02 intmain include include ...

list容器和forward list容器

list就是乙個雙向鍊錶,只支援雙向順序訪問,並且還是乙個環形鍊錶。因此list只需要乙個指標就可以完整表現整個鍊錶。如果讓指標node指向刻意置於尾端的乙個空白節點,node便能符合stl對於前閉後開的要求,成為last迭代器。相較於vector的連續線性空間,list就顯得複雜許多,他的好處是每...

list容器總結

1.關於list容器 list是一種序列式容器。list容器完成的功能實際上和資料結構中的雙向鍊錶是極其相似的,list中的資料元素是通過鍊錶指標串連成邏輯意義上的線性表,也就是list也具有鍊錶的主要優點,即 在鍊錶的任一位置進行元素的插入 刪除操作都是快速的。list的實現大概是這樣的 list...