关于cmp函数参数中的&符号

关于cmp函数参数中的&符号

关于sort函数中的cmp函数有着不同的写法,以刚刚的整形元素比较为例

还有人是这么写的:

bool cmp(const int &a, const int &b){
return a>b;
} int a[10];
sort(a,a+10,cmp);

思考:int 和const int&有什么区别呢?

原来:作为函数参数:int这种写法是值传递,const int&则是引用传递

“值传递”——由于函数将自动产生临时变量用于复制该参数,效率较低。

“引用传递”仅借用一下参数的别名而已,不需要产生临时对象。效率较高
tips:“引用传递”有可能改变参数,const修饰可以解决这个问题。

上一篇:centos/linux下的安装git


下一篇:@ContextConfiguration注解说明