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。