华宇考试网

当前位置: > 学历 > 考研 > 考研英语 > 考研英语作文 >

model和template的区别,c 中常见的模板类型有哪些

时间:2023-03-17来源:华宇考研网作者:考研英语作文 考研视频
model和template的区别

model和template的区别?

template多指模板,固定的模板框架,比较详细。例如,作文模板。

model多指模型,例如,机器人模型

c++中常见的模板类?

模板类英文为class template,template的中文翻译为模板,故此,模板类的意思实际上是:类的模板。

从名字中我们就可以看得出来,模板类是基本上等同于一个模具,当参数给定时,生成详细的类,也叫实例化。它的提出主要是为了减少代码重复。

比如,我们可以用下面的代码交换两个数b和c

a = b;

b = c;

c = a;

这个交换过程与a,b,c的详细类型没相关系,因为这个原因我们可以用它来交换两个整数,或者两个浮点数。更大多数情况下的,我们可以用来交换两个具有赋值运算符的类型。因为这个原因,可以用模板进行大多数情况下化:

templateclass T

void swap(T b, T c){

a = b;

b = c;

c = a;

}

上面讲解的这个不是模板类,而是模板函数。不过他们的概念是类似的。这当中一开头的template代表后面尖括号中的是模板参数(类似于函数的参数),class代表参数是类(对应的,可以用templateint N来声明整型参数)。后面的代码和的函数基本没有区别,只是用T来代替了详细的类型,比如int,double等。按照需我们可以用swapint(b,c)来交换两个整数,swapdouble(b,c)交换两个浮点数。因为编译器可以按照b,c的详细类型推导T的详细含义,因为这个原因可以简写为swap(b,c)。

回到模板类,假设我们需一个类型来代表变动数组,且该类型支持size成员函数。假设是整型的类,我们可能会写

class vector_int{

size_t size() const;

};

假设某日,我们又需浮点类型的变动数组,可能又会写

class vector_double{

size_t size() const;

};

于是就可以发现它们的代码是如此的类似,因为这个原因我们期望将它大多数情况下化。如同swap函数的做法,我们将它定义为模板类:

templateclass T

class vector{

size_t size() const;

};

因为这个原因,vec_int基本上相当于vectorint,而vector_double基本上相当于vectordouble。因为运用模板类的语法类似于

vectorT a;

因为这个原因,编译器没办法为我们推导T的详细含义,故此,不可以像模板函数一样进行简写。

上面是比较简单的情况,有的时候,候我们需的类在大多数情况下差不多的,但是,针对某哪些特殊情形可能有一定的差别,比如我们可能期望针对bool类型的数组能尽可能减少内存的使用,用一个比特位代表一个bool值。以此,我们的数组不是通过bool a[10]的形式来定义。在这样的情况下,c++提供了模板特化,其实就是常说的说当模板的参数取某个详细的值时,我们使用不一样的模板,定义方法请看下方具体内容:

template

class vectorbool{

size_t size() const;

};

因为,它是一个特化的模板类,故此,唯有普通模板存在的情况下,它的存在才是合法的,不然我们是对什么进行特化的呢?

C++中模板是什么东西?

模板类英文为class template,template的中文翻译为模板,故此,模板类的意思实际上是:类的模板。从名字中我们就可以看得出来,模板类是基本上等同于一个模具,当参数给定时,生成详细的类,也叫实例化。它的提出主要是为了减少代码重复。

比如,我们可以用下面的代码交换两个数b和ca = b;b = c;c = a;这个交换过程与a,b,c的详细类型没相关系,因为这个原因我们可以用它来交换两个整数,或者两个浮点数。

更大多数情况下的,我们可以用来交换两个具有赋值运算符的类型。因为这个原因,可以用模板进行大多数情况下化:template

考研复习资料下载

华宇考试网考研免费资料下载

    百度网盘提取码:gha7 考研视频课程

©下载资源版权归作者所有;本站所有资源均来源于网络,仅供学习使用,请支持正版!

    相关推荐:

考研培训班-名师辅导课程

考研视频课程

>>考研培训班视频课程,听名师讲解<<

考研视频课程

>>考研培训班视频课程,听名师讲解<<

(文章编辑:华宇考试网;相关考研博客:考研网)

    考研英语作文热门资讯

  • model和template的区别,c 中常见的模板类型有哪些

    model和template的区别? template多指模板,固定的模板框架,比较详细。例如,作文模板。 model多指模型,例如,机器人模型 c++中常见的模板类? 模板类英文为class template,template的中文翻译为模板,故此,模板类的意思实际上是:类...

    2023-03-17

  • 但用字母怎么表示,但是英文怎么写的写

    但用字母怎么表示? 含有“但是,”的英文有:but,yet,though。 词汇剖析解读: 一、but 英[bʌt; bət]美[bʌt] 1、conj. 但是,;而是;然而, 但是,用英文怎么写? 含有“但是,”的英文有:but,yet,though。 词汇剖析解读: 一、...

    2023-03-16

  • 曾经的英文怎么写,曾经的英语是什么词性

    曾经的英文怎么写? 过去曾经的英文翻译是once。 词汇分析 音标:英 [wʌns] 美 [wʌns] 释义: adv. 一次;曾经 conj. 但凡是 n. 一次,一回 拓展资料 1、They cocktailed once every week. 他们每星期喝一次鸡尾酒。 2、He once lived in Shanghai. 他曾...

    2023-03-16

  • 2023铁路大学在职分数线,高考报铁路学校要多少分

    2023铁路大学在职成绩分数线? 大多数情况下的本科一批的铁路类大学院校的理科生录取成绩分数线会在450分到500分当中,文科生会在400分到450分当中。重点铁路大学的成绩分数线需要在550分以上,二本的铁路大学成绩分数线要达...

    2023-03-16

  • 电子信息科学与技术专业就业去向,电子信息科学与技术包含哪

    电子信息科学与技术专业就业去向? 一般来说,电子信息科技这个专业,就业时分三个方向:电子微电子线路与数控技术、通信工程、计算机程序设计。即硬件、通信、软件三个方向。说实话这个专业学起来比较累,因为要掌握并...

    2023-03-16