C++ 模板 通用类型T

inline是C++关键字,在函数声明或定义中,函数返回类型前加上关键字inline,即可以把函数指定为内联函数。关键字inline必须与函数定义放在一起才能使函数成为内联函数,仅仅将inline放在函数声明前面不起任何作用。inline是一种“用于实现”的关键字,而不是一种“用于声明”的关键字。一般用户可以阅读函数的声明,但是看不到函数的定义.

内联没有函数调用的开销,效率高,适用于代码少,运行时间短的函数

使用内联后,max函数会在在使用max函数的地方直接展开,省用了调用函数的开销.

用了const说明你的参数在函数内是不经过修改的,如果修改了,则编译时会报错.而使用(&)传址方式来进行参数的传递,可以不需要开辟一块程序栈,使用引用来进行返回,因为你的参数用的是常引用,故使用常引用将其返回.对引用的操作可以看成是间接对其对象的操作.

进入函数后a和b的地址与x,y的地址相同,并且a和b的值不能改变,这是const&的作用,固定地址。

& 是这个数的引用

引用可说把a变量换了一个名字为b即:

&b=a

第一个const 说明这个函数的返回值是一个不能被改变的数,而那个& 是这个数的引用

最后两个const 表示参数 是const的两个引用
用引用可以减少数值传递过程中的时间,而const则保证这个传过来的值在使用时不被改变。

类模板

vector是线性容器,它的元素严格的按照线性序列排序,和动态数组很相似,和数组一样,它的元素存储在一块连续的存储空间中,这也意味着我们不仅可以使用迭代器(iterator)访问元素,,还可以使用指针的偏移方式访问,和常规数组不一样的是,vector能够自动存储元素,可以自动增长或缩小存储空间。

在类定义体外定义成员函数时,若此成员函数中有模板参数存在,则除了需要和一般类的体外定义成员函数一样的定义外,还需在函数体外进行模板声明

占位符就是先占住一个固定的位置,等着你再往里面添加内容的符号,广泛用于计算机中各类文档的编辑。

push_back是编程语言里面的一个函数名。如c++中的vector头文件里面就有这个push_back函数,在vector类中作用为在vector尾部加入一个数据。

push back可以理解为压栈的意思,但又有点区别,知道这个函数是每次把元素压到最后面就行了,都是容量类在使用。

向量专用,vector<int>v; v.push_back(1);v.push_back(3);v.push_back(2);
=======>v[o]==1
=======>v[1]==3
=======>v[2]==2

out_of_range

out_of_range是一个进程文件

C++异常类,继承自logic_error,logic_error的父类是exception。属于运行时错误,如果使用了一个超出有效范围的值,就会抛出此异常。也就是一般常说的越界访问。定义在命名空间std中。

使用时须包含头文件 #include<stdexcept>

采用remove一般情况下不会改变容器的大小,而pop_back()与erase()等成员函数会改变容器的大小。

类模板,模板的类型参数由关键字class 或关键字typename 及其后的标识符构成。在模板参数表中关键字class 和typename 的意义相同。

函数模板不同的是:函数模板的实例化是由编译程序在处理函数调用时自动完成的,而类模板的实例化必须由程序员在程序中显式地指定,

其实例化的一般形式是:

类名 <数据类型 1(或数据),数据类型 2(或数据)…> 对象名

例如,Smemory<int> mol;

表示将类模板Smemory的类型参数T全部替换成int 型,从而创建一个具体的类,并生成该具体类的一个对象mol。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值