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...