C++模板和流学习笔记
//一:基本范例
//a)模板的定义是以template关键字开头。
//b)类型模板参数T前面用typename来修饰,所以,遇到typename就该知道其后面跟的是一个类型。
//typename可以被class取代,但此处的class并没有“类”
//c)类型模板参数T(代表是一个类型)以前前面的修饰符typename/class都用<〉括起来
//d)T这个名字可以换成任意其他标识符,对程序没有影响。用T只是一种编程习惯。
### 函数模板
template<classT1,classT2,...>
返回类型 函数名(参数列表){
...
}
其中,T1,T2,....是模板参数
ps:
不允许template遇函数模板定义之间有哦任何语句
类模板
类模板是用于设计结构和成员函数完全相同,但所处理的数据类型不同的通用类。
类模板定义形式:
template<class T1,class T2,...>
class类名{
...
};
//举例:
template <class Type>
class Compare{
private:
Type x,y;
public:
Compare(Typex,Type y){//构造函数,用于初始化
this->x=x;
this->y=x;
Type max()//求较大值
{
return(x>y)?x:y;
}
Type min)//求较小值
{
return(x<y)?x:y;
}
};
类模板和函数模板的不同是类模板使用时要用尖括号指明参数类型,函数模板可以自动识别参数类型
标准输入流
cin>>x;
·读入整型数时以第一个非数字为终结
·读入字符串时以第一个空格、tab或换行符为终结
cin.getline(str,len,ch);//读入一个字符串
//ch被从流中提出,但不存入
str ch=cin.get); //读入一个单独的字符
cin.ignore(len,ch); //忽略一串字符,ch同上