C++:const + 引用传递参数

考虑如下两段代码参数的传递有何差别

void Slove(const vector<int> &v){
    
    
   //函数实现
}
void Slove(const vector<int> v){
    
    
   //函数实现
}

上述两段代码的主要区别是形参是值传递还是引用传递。

对于基本的数据类型(int、bool、double等)而言,可能两种写法的区别不是很大,但是形参为vector、list、map、set等容器时,引用传递就很凸显出它的优势,引用传递传递的是实参的地址,而值传递则是实参的拷贝,相当于把实参复制了一份;对于STL容器、类或者结构体等的参数传递而言,使用引用传递可以避免调用拷贝构造函数,能够节省函数调用时的内存分配,减少函数调用过程中的时间消耗,从而提高系统效率。其次,在参数传递的过程中,如果不希望在使用的过程中改变实参的值,那么可以在前面加上“const”关键字,保持良好的代码风格。

猜你喜欢

转载自blog.csdn.net/shangzhengyu/article/details/113608662