C STL標準模板庫 list

2021-10-04 18:27:46 字數 2775 閱讀 4314

鍊錶(list)的組成:有一系列的結點組成

結點的組成:乙個是儲存資料元素的資料域,另乙個是儲存下乙個結點位址的指標域

由於鍊錶的儲存方式並不是連續的記憶體空間,因此鍊錶中的迭代器只支援前移和後移,屬於雙向迭代器

list優點:

list缺點:

list有乙個重要的性質,插入操作和刪除操作都不會造成原有list迭代器的失效,這在vector是不成立的

void

myprintf

(const list<

int>

&l) cout << endl;

}

示例:

list<

int> l;

l.push_front(1

);l.push_front(2

);l.push_back(3

);l.push_back(4

);myprintf

(l);

list<

int>l1(

5,100)

;myprintf

(l1)

; list<

int>

l2(l)

;myprintf

(l2)

; list<

int>

l3(l1.

begin()

,l1.

end())

;myprintf

(l3)

;

賦值有兩種方法: 操作符 = 和 .assign()

交換:示例:

list<

int> l;

l.push_back(1

);l.push_back(2

);l.push_back(3

);l.push_back(4

);myprintf

(l);

list<

int> l1;

l1.assign(6

,100);

myprintf

(l1)

; list<

int> l2;

l2.assign

(l.begin()

,l.end()

);myprintf

(l2)

; l2.

swap

(l1)

;myprintf

(l2)

;

示例:

list<

int> l;

l.push_back(1

);l.push_back(2

);l.push_back(3

);l.push_back(4

);myprintf

(l);

list<

int> l1;

l1.push_back(11

);l1.

push_back(12

);l1.

push_back(13

);l1.

push_back(14

);l.insert

(l.begin()

,3,99

);myprintf

(l);

l.insert

(l.end()

,l1.

begin()

,l1.

end())

;myprintf

(l);

l.erase

(l.begin()

);myprintf

(l);

l.remove(99

);myprintf

(l);

l.clear()

;myprintf

(l);

注意:list不能用 [ ] 和 .at(int idx) 的方式訪問容器中的元素,因為list儲存方式並不是連續的記憶體空間,只要一下兩個方式

示例:

list<

int> l;

l.push_back(1

);l.push_back(2

);l.push_back(3

);l.push_back(4

);myprintf

(l);

//list在訪問元素時不能用和.at()的方式訪問,因為list本質時鍊錶,

//不是用連續線性儲存資料,迭代器也是不支援隨機訪問的

cout <<

"list第乙個元素:"

<< l.

front()

<< endl;

cout <<

"list最後乙個元素:"

<< l.

back()

<< endl;

//驗證迭代器也是不支援隨機訪問的

/*list::iterator it = l.begin();

it++;//表達正確

it = it + 1;//表達錯誤

*/

示例:

bool

mycompare

(const

int&val,

const

int&val2)

void

fun(

)

C STL 標準模板庫

1.泛型程式設計 在c 中,模板是泛型程式設計的基礎。下面有乙個stl初體驗的 include include include include include include using namespace std 自定義函式物件 template class square int test int...

C STL標準模板庫

stl共有6中元件 容器 容器介面卡 迭代器 演算法 函式物件 仿函式 和函式介面卡。最常用的是順序容器,順序容器內的元素按其位置進行儲存和訪問。除順序容器外,標準庫還定義了幾種關聯容器。這裡我們主要講一下順序容器。標準庫定義了三種順序容器型別 vector list和deque,它們的差別在於訪問...

c STL(標準模板庫)

c stl 標準模板庫 是一套功能強大的 c 模板類,提供了通用的模板類和函式,這些模板類和函式可以實現多種流行和常用的演算法和資料結構,如向量 鍊錶 佇列 棧。元件描述 容器 containers 容器是用來管理某一類物件的集合。c 提供了各種不同型別的容器,比如 deque list vecto...