C STL簡單介紹

2021-10-19 18:21:48 字數 3060 閱讀 4162

5. 容器演算法迭代器初識

stl大體分為六大元件,分別為:容器,演算法,迭代器,仿函式,介面卡(配接器),空間配置器

容器:各種資料結構:如vector,list,deque,set,map等,用來存放資料

演算法:各種常用的演算法:如sort,copy,for_each

迭代器:扮演了容器與演算法之間的膠合器

仿函式:行為類擬函式,可作為演算法的某種策略

介面卡:一種用來修飾容器或者仿函式或迭代器介面的東西

空間配置器:負責空間的配置與管理

容器:置物之所也

stl容器就是將運用最廣泛的一些資料結構實現出來

常用的資料結構:陣列,鍊錶,樹,棧,佇列,集合,對映表 等

這些容器分為序列式容器關聯式容器兩種:

演算法:問題之解法也

有限得步驟,解決邏輯或教學上的問題,這一門學科叫做演算法(algorithms)

演算法分為:質變演算法非質變演算法

迭代器: 容器和演算法之間粘合劑

提供一種方法,使之能狗依序尋訪某個容器所含的各個元素,而又無需暴露該容器的內部表示方式

每個容器都有自己的專屬迭代器

迭代器使用非常類似於指標,初學階段可以先理解迭代器為指標

迭代器種類:

種類功能

支援運算

輸入迭代器

堆資料的唯讀訪問

唯讀,支援++,==,!=

輸出迭代器

對資料的只寫訪問

只寫,支援++

前向迭代器

讀寫操作,並能向前推進迭代器

讀寫,支援++,==,!=

雙向迭代器

讀寫操作,並能向前和向後操作

讀寫,++,--

隨機訪問迭代器

讀寫操作,可以以跳躍的方式訪問任何資料,功能最強的迭代器

讀寫,支援++,--,[n],-n,<,<=,>,>=

注:常用的容器中迭代器種類為雙向迭代器,和隨機訪問迭代器

了解stl中容器,演算法,迭代器概念後,我們利用**感受下stl的魅力

stl中最常用的容器為vector,可以理解為陣列。

容器:vector

演算法:for_each

迭代器:vector::iterator例:

#include

using

namespace std;

#include

#include

void

myprint

(int val)

void

test()

//第二種遍歷方式

cout <<

"第二種遍歷方式"

<< endl;

for(vector<

int>

::iterator it = v.

begin()

; it != v.

end(

); it++

)//第三種遍歷方式 ,使用stl提供的標準遍歷演算法(for_each) 標頭檔案

cout <<

"第三種遍歷方式"

<< endl;

for_each

(v.begin()

, v.

end(

), myprint);}

intmain()

例:

#include

using

namespace std;

#include

#include

class

person

string m_name;

int m_age;};

void

test()

}//存放自定義資料型別 指標

void

test01()

}int

main()

例:

#include

using

namespace std;

#include

#include

void

test()

//將小容器插入 大容器

v.push_back

(v1)

; v.

push_back

(v2)

; v.

push_back

(v3)

; v.

push_back

(v4)

;//通過大容器,把所有的資料遍歷一遍

for(vector< vector<

int>

>

::iterator it = v.

begin()

; it != v.

end(

); it++)

cout << endl;}}

intmain()

C STL簡單介紹

stl standard template library,標準模板庫 是c 對泛型程式設計思想的實現,最早是惠普實驗室開發的。在被引入c 之前該技術就已經存在了非常長的一段時間。後來stl成為ansi iso c 標準的一部分。各個 c 廠商也有各自對應的模板庫,這些庫效率可能非常高,但可移植性不...

C STL 的簡單介紹

本篇文章內容基本 於c語言中文網,根據其內容進行簡化 留作自我複習使用 c 的標準模板庫 standardtemplatelibrary 是泛型程式設計最成功應用的例項 stl是一些常用資料結構和演算法的模板的集合 順序容器關聯容器容器介面卡 也簡稱容器 舉例 棧stack 佇列queue 優先佇列...

C STL簡單應用

include include include 容器 陣列的增強版 include 去重,排序 include 自動建立key value對應 include 棧 先進後出 include 佇列 先進先出 using namespace std int main vector v a,a 3 不能直...