由重建二叉树算法题到临时对象不能绑定到非 const 的左值引用

本文探讨了在解决算法题时遇到的临时对象不能绑定到非const左值引用的问题,详细解释了const引用的用法。通过举例说明,强调了编译器不允许非const引用绑定到临时量的原因。此外,还介绍了根据前序遍历和中序遍历重建二叉树的基本思想和递归实现方法。
摘要由CSDN通过智能技术生成

前言

最近在刷剑指offer,在将一个临时变量传给一个引用的时候,出现了non-const lvalue reference to type 'vector<[...]>' cannot bind to a temporary of type 'vector<[...]>'的错误,意思就是不能将临时对象绑定到非const的左值的引用,那么在这里就总结一下这道算法题和const引用的用法。


const总结

对于一个const T&的初始值不一定是一个左值,甚至可以不是类型T,但是非const引用不能绑定非左值。
如下面的例子:

double *r1=3.14;//错误,3.14是一个临时变量,将引用r1绑定到临时变量上,可能发生r1引用修改临时变量的值。
const int *r2=3.14;//正确。

在初始化常量引用时,允许用任意表达式做出初始值,只要该表达式的结果能转换成引用的类型即可,同时,允许为一个常量引用绑定非常量的对象,字面值,甚至一个一般表达式。


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值