C 學習(17) 初識STL

2022-08-13 02:39:18 字數 2363 閱讀 2718

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

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

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

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

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

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

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

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

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

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

序列式容器:強調值的排序,序列式容器中的每個元素均有固定位置

關聯式容器:二叉樹結構,各元素之間沒有嚴格的物理上的順序關係

有限的步驟,解決邏輯或數學上的問題,這一門學科我們叫做演算法

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

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

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

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

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

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

種類功能

支援運算

輸入迭代器

對資料的唯讀訪問

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

輸出迭代器

對資料的只寫訪問

只寫,支援++

前向迭代器

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

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

雙向迭代器

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

讀寫,支援++、--

隨機訪問迭代器

讀寫操作,可以以跳躍的方式訪問任意資料

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

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

stl中最常用的容器為vector,可以理解為陣列,下面學習如何向這個容器中插入資料,並遍歷這個容器

5.1 vector存放內建的資料型別

容器:vector

演算法:for_each

迭代器:vector::iterator

#include#include#include//標準演算法標頭檔案

using namespace std;

void myprint(int val)

void test01()

////第二種遍歷方式

for (vector::iterator it = v.begin(); it != v.end(); it++)

//第三種遍歷方式

for_each(v.begin(), v.end(), myprint);

}int main()

5.2 vector存放自定義資料型別

學習目標:vector中存放自定義的資料型別,並列印輸出

#include#include#include#include//標準演算法標頭檔案

using namespace std;

class person

string m_name;

int m_age;

};void test01()

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

void test02()

}int main()

5.3 vector容器巢狀容器

學習目標:容器中巢狀容器,我們將所有資料進行遍歷輸出

#include#includeusing namespace std;

void test01()

//將小容器插入到大容器中

v.push_back(v1);

v.push_back(v2);

v.push_back(v3);

v.push_back(v4);

//通過大容器將所有資料遍歷

for (vector>::iterator it = v.begin(); it != v.end(); it++)

cout << endl; }}

int main()

STL學習1初識

stl基本概念 stl從廣義上分為 容器 containter 演算法 algorithm 迭代器 iterator 六大元件 容器 各種資料結構 演算法 各種演算法sort search 迭代器 容器與演算法之間的橋梁,所有容器有自己的專屬迭代器 原生指標也是一種迭代器 仿函式 functors行...

C 之STL(一)初識

standard template library 標準模板庫 容器 演算法 迭代器 仿函式 介面卡 空間配置器 容器和演算法之間通過迭代器進行無縫連線 技術基於模板實現 容器 各種資料結構,vector list deque set map等 演算法 如sort find copy等 迭代器 扮演...

STL 初識STL 系列1

c primer plus 第16章讀書筆記。總結 1.vector 模板 size swap swap yyy begin end 語法 vector iterator pd scores.begin for auto pd scores.begin pd scores.end pd push b...