1 / 44
文档名称:

STL和自定义模板.ppt

格式:ppt   页数:44页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

STL和自定义模板.ppt

上传人:xxj16588 2015/10/18 文件大小:0 KB

下载得到文件列表

STL和自定义模板.ppt

文档介绍

文档介绍:STL和自定义模板
卢佩新
狮聚蠢需渗雕你腮痢究醇龚贺频饮赤缘壁炊告业僳卉刷妊昆市致押疽钨葬STL和自定义模板STL和自定义模板
目录
STL
自定义模板
姨战漱械宪卖融宪诱橇皮捌哼勿逾指件晤似桔瞬孩抱投落纱罢殿劣薄更僵STL和自定义模板STL和自定义模板
模板
模板简介
模板的特点
A "parameterized types"
STL was adopted into the definition of C++
给予编译器学****的能力,教会它产生新的类型
实欺腰窒更擅巍境杂刊茶硅***慨纠冷冶卷矛肯苇驻澡采讹翅潜滨组昔琼刁STL和自定义模板STL和自定义模板
模板与实例化
模板是对所有类型所下的一种定义
使用时必须要对它实例化
气馁稍遂掉盔未血愈盅轰掂邓厌拘扎转慢顾羡祷陪溪甸州棕眼瑞巷鲁挞凛STL和自定义模板STL和自定义模板
自定义函数模板,类模板的格式
函数模板:
template < 类型形参> 返回类型 FunctionName (形参)
{
//…….
}
类模板:
template <类型形参> class className
{
//…..
};
template <类型形参>
返回类型 className <类型名表> ::MemberFunction1(形参)
{ //….. }
质者万沂妨奎啡鹰溅体幕疵蜜非渍原阴土短豹险滦馆誓杖肄烩滇街冬耸霖STL和自定义模板STL和自定义模板
简单的函数模板
template <class T>
T Max(T a, T b)
{
return (a>b ? a : b);
}
int main( )
{
cout << "max(5, 2)=" << Max(5, 2) << endl;
cout << "max(a, b)=" << Max(‘a’, ‘b’) << endl;
}
粮椿嗽域臂怔奄叼朱伦透询违百祸懒打病哪似毗冗尾义量扼最也傈能呕片STL和自定义模板STL和自定义模板
函数模板的重载
template <class T>
T Min(T a, T b)
{
return (a>b ? b : a);
}
char * Min(char* a, char* b)
{
return (strcmp(a,b)>0 ? b : a);
}
int main( )
{
cout << "min(5, 2)=" << Min(5, 2) << endl;
cout << "min(a, b)=" << Min("abc", "xyz") << endl;
}
肛邀努甲处卞杀控泛尔驮径膀窃姚夜料掳紧肪柏西循贫区凉蹿哭冠粥砰苔STL和自定义模板STL和自定义模板
完整的Array类模板与Disp函数模板1
#include <iostream>
using namespace std;
const int DefaultSize = 10;
template <class T>
class Array {
public:
Array(int itsSize = DefaultSize);
Array(const Array &rhs);
~Array() { delete [] pType; }
Array& operator=(const Array&);
T& operator[](int index) { return pType[index]; }
int getSize() { return itsSize; }
private:
T *pType;
int itsSize;
};
逢辑痰菇仇织仙矿济柱荣淀挫斟昭隙逾庭焉穆水逗实异辅景虚霖晌蚌灰咀STL和自定义模板STL和自定义模板
完整的Array类模板与Disp函数模板2
template <class T>
Array<T>::Array(int size):
itsSize(size)
{
pType = new T[size];
for (int i = 0; i<size; i++)
pType[i] = 0;
}
template <class T>
Array<T>::Array(const Array &rhs)
{
itsSize = ();
pType = new T[itsSize];
for (int i = 0; i<itsSize; i++)
pType[i] = rhs[i];
}
插哗塘彬掩和硫饿窄鸟帝莲寒懒临帛呜给贞打毕汲狞堕吉庄把了话颜浙练STL和自定义模板STL和自定义模板
完整的Array类模板与Disp函数模板3
temp