C STL篇(二) STL三大元件

2021-10-10 04:22:58 字數 3504 閱讀 2888

2.1容器

容器:置物之所也,stl容器就是將運用最廣泛的一些資料結構實現出來。

1、常用的資料結構:陣列(array),鍊錶(list),樹(tree),棧(stack),集合(set),對映表(map)。

2、根據資料在容器中的排列特性,分為序列式容器和關聯式容器兩種。

–>序列式容器:強調值的排序,序列式容器中的每個元素均擁有固定的位置,除非用插入、刪除的操作改變這個位置。vector、deque、list等。

–>關聯式容器:非線性的樹結構,更準確說是二叉樹,個元素之間沒有嚴格的物理上的順序的關係,元素在容器中並沒有儲存元素置入容器時的邏輯順序。關聯式容器的顯著特點是:在值中選擇乙個值作為關鍵字key,這個關鍵字對值起到索引的作用,方便查詢。set、multiset、map、multimap、等

注:容器之間可以巢狀。

2.2、演算法

演算法: 問題的解法。stl收錄的演算法經過了數學上的效能分析與證明,極具復用價值,包括常見的排序和查詢等等,

1、演算法分為質變演算法和非質變演算法

–>質變演算法:運算過程中更改區間內的元素的內容,如拷貝、替換、刪除等

–>非質變演算法:運算過程中不會更改區間內的元素內容,如查詢、計數、遍歷、尋找極值等。

2.3、迭代器

迭代器:抽象的設計概念,顯示程式語言中沒有直接對應於這個概念的實物。定義:提供一種方法,能夠依序尋找某個容器所含有的各個元素,而又無需暴露該容器的內部表示方式。

1、迭代器的分類:輸入、輸出、前向、雙向、隨機訪問迭代器。

2、具體實現**:

#include

#include

#include

using

namespace std;

//迭代器 遍歷功能 指標理解

//正常情況下的遍歷輸出

void

test01()

;for

(int i=

0;i<

5;i++

) cout

"-------------------------"

<}//普通指標的遍歷方式

void

test02()

;int

*p=arr;

for(

int i=

0;i<

5;i++

) cout

"-------------------------"

<}void

myprint

(int v)

//vector中的資料遍歷方式

void

test03()

cout

"-------------------------"

for(vector<

int>

::iterator it=v.

begin()

;it!=v.

end(

);it++

) cout

"-------------------------"

for_each

(v.begin()

,v.end()

,myprint)

; cout

"-------------------------"

<}//不同型別的vector

class

person

string name;

int age;};

void

test04()

cout<<

"-------------------------"

<}//存放自定義型別的指標

void

test05()

cout<<

"-------------------------"

<}//容器巢狀容器

void

test06()

//將小容器放入到大容器

v.push_back

(v1)

; v.

push_back

(v2)

; v.

push_back

(v3)

;//遍歷所有的資料

for(vectorint>

>

::iterator it=v.

begin()

;it!=v.

end(

);it++

) cout<} cout<<

"-------------------------"

<}int

main()

153

69----

----

----

----

----

-----1

5369

----

----

----

----

----

-----1

5369

----

----

----

----

----

-----1

5369

----

----

----

----

----

-----1

5369

----

----

----

----

----

----

-姓名:jjj 年齡:10

姓名:ggg 年齡:20

姓名:ddd 年齡:30

----

----

----

----

----

----

-姓名:jjj 年齡:10

姓名:ggg 年齡:20

姓名:ddd 年齡:30

----

----

----

----

----

-----0

1234

1011

1213

1420

2122

2324

----

----

----

----

----

----

-process returned 0

(0x0

) execution time :

0.035 s

press any key to continue

.

C STL篇(一) STL基本介紹

1.1 stl基本概念 stl的基本概念 標準模板庫,主要出現在c 中。stl廣義上的分類 容器 container 演算法 algorithm 迭代器 iterator 容器和演算法之間通過迭代器無縫連線。1.2 stl六大元件簡介 stl的六大元件之間可以組合套用,六大元件分別是 容器 演算法 ...

STL認識 6大元件

stl 標準模板庫 乙個泛型程式庫 六大元件 1 容器 各種資料結構,用於存放資料,管理某類物件的集合 1.1 序列式容器 sequence container 為可序 ordered群集 每個元素有固定位置,位置取決於插入時機和地點,和元素值無關 1.1.1 vector 向量,動態陣列,可隨機訪...

STL六大元件

stl提供六大元件,彼此可以組合套用。1 容器 containers 各種資料結構。如vector,list,deque,set,map,用來存放資料。容器又可以分為順序容器和關聯容器.順序容器 vector,list,deque,stack,queue,heap,priority queue,sl...