C 初級 模板基礎與STL概念

2021-10-05 09:20:29 字數 2029 閱讀 4419

1.泛型程式設計

過載函式缺點:

template

<

typename t1,

typename t2,..

....

typename tn>(t是型別)

返回值型別 函式名(引數列表)

例項:

#include

using

namespace std;

template

<

typename t>

void

swap

(t& first, t& second)

intmain()

(1)函式模板例項化:給不同型別的引數使用模板

模板引數例項化分為:隱式例項化和顯示例項化

#include

using

namespace std;

template

<

typename t>

void

add(

const t& first,

const t& second)

intmain()

(2)模板引數匹配原則

int

add(

int a,

int b)

;template

<

typename t>

t add

(int a,

int b)

;add(1

,2);

//與非模板函式匹配

add<

int>(1

,2);

//與模板函式匹配

int

add(

int a,

int b)

;template

<

typename t1,typename t2>

t1 add

(t1 a, t2 b)

;add(1

,2);

//與非模板函式匹配

add(1,

2.8)

;//與模板函式更佳匹配

template

<

classt1,

classt2,

....

..,class

tn>

class 類模板名

;

#include

#include

using

namespace std;

template

<

class

t>

class

vector

~vector()

;void

pushback

(const t& data)

;void

popback()

; size_t size()

t&operator

(size_t pos)

private

: t * _pdata;

size_t _size;

size_t _capacity;};

template

<

class

t>

//類模板函式在類外面定義時,需要加模板引數列表

vector::~

vector()

_size = _capacity =0;

}int

main()

4.stl概述

stl(standard template library-標準模板庫):是c++標準庫的重要組成部分,是乙個可復用的元件庫,是乙個包含資料結構與演算法的框架

stl六大元件:

STL模板的基礎與了解

一 c 提供了模版的程式設計方法來解決程式設計問題,思路是 程式設計師先編號乙份 套路 然後在呼叫時編譯器根據呼叫時的引數 再為這種資料型別生成乙份屬於他的 c語言中的快速排序 二.模板的語法 template t max t num1,m num2 a.模版的型別引數 t 被稱為模版的型別引數,可...

C 類 物件 模板與STL

類 乙個特殊的概念,再c 語言中是乙個新的資料型別,可以是對同一型別事物進行抽象處理,也可以是乙個層次結構中的不同層次節點。類的宣告與定義 類中的成員函式的定義方法 1.將類的成員函式都定義在類體內 2.將類的成員函式的實現放在類體外,但如果類成員函式定義在類體外,需要用到域運算子 當多個原始檔都引...

C 模板之Vector與STL初探

stl原始碼初步接觸 stl standard template library,直譯過來是 標準模板庫,是惠普實驗室開發的一系列軟體的統稱。從根本上說,stl是一些 容器 的集合,這些 容器 有list,vector,set,map等,stl也是演算法和其他一些元件的集合。這裡的 容器 和演算法的...