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也是演算法和其他一些元件的集合。這裡的 容器 和演算法的...