C STL標準庫基礎 長篇整理

2021-10-17 05:17:56 字數 1559 閱讀 8228

1 stl基礎

泛型是什麼,c++泛型程式設計又是什麼?

實質上就是不使用具體資料型別(int、double、float等),而是使用一種通用型別來進行程式設計的方法,泛泛的描述一下資料,這個方法可以大規模的減少程式**的編寫量。

模板函式如下:

其中,t是乙個佔位符(資料型別佔位符),也就是說,將來t這個位置是乙個真實的、具體的資料型別。

所以,可以把t這種型別佔位符也稱為一種資料型別,就叫泛型(generic type)。使用這種型別佔位符的程式設計方式就叫泛型程式設計。

總之,泛型也是一種資料型別,但它是用來代替所有型別的「通用型別」。

template

<

typename t>

intfunc

(const t &a1,

const t &a2)

template

<

class

t>

inline

intfunc

(const t &a1,

const t&a2)

tempalte<

typename t1,

typename t2,

typename t3>

t1 func

(const t2 &t2,

const t3 &t3)

//呼叫方法

func<

long

>

(i, log)

;

c++ stl基本組成(6大元件+13個頭檔案)

通常認為,stl 是由容器、演算法、迭代器、函式物件、介面卡、記憶體分配器這 6 部分構成,其中後面 4 部分是為前 2 部分服務的,它們各自的含義如表 1 所示。

介面卡:是模板指標 規範輸入 引數和返回值型別的

容器 簡單的理解容器,它就是一些模板類的集合,但和普通模板類不同的是,容器中封裝的是組織資料的方法(也就是資料結構)。stl 提供有 3 類標準容器,分別是序列容器、排序容器和雜湊容器,其中後兩類容器有時也統稱為關聯容器。它們各自的含義如表 1 所示。

容器簡單理解就是資料結構 列表 佇列 字典這些

迭代器類別

stl 標準庫為每一種標準容器定義了一種迭代器型別,這意味著,不同容器的迭代器也不同,其功能強弱也有所不同。

容器的迭代器的功能強弱,決定了該容器是否支援 stl 中的某種演算法。

常用的迭代器按功能強弱分為輸入迭代器、輸出迭代器、前向迭代器、雙向迭代器、隨機訪問迭代器 5 種。本節主要介紹後面的這 3 種迭代器。

c++ stl關聯式容器 就是python 中的字典 key-value格式

仿函式c++ 可以通過運算子過載來改變物件的外觀 例如 過載 使物件看起來像陣列 過載()使物件看起來像函式

c++中 把類過載() 以後物件看起來像函式的這種方式叫做仿函式

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