const int &b=20和int &&b=20在底层指令上是一模一样的,没有任何区别,不同的是,通过右值引用变量,可以进行读操作,也可以进行写操作。
有地址的用左值引用,没有地址的用右值引用;有变量名字的用左值引用,没有变量名字的(比如临时量没有名字)用右值引用。
++i与i++
++i可以返回对象的引用,i++必须返回对象的值,所以导致在大对象的时候产生了较大的复制开销,引起效率降低。
内建数据类型的的情况,效率没什么区别
自定义数据类型的情况,++i效率更高
const int &b=20和int &&b=20在底层指令上是一模一样的,没有任何区别,不同的是,通过右值引用变量,可以进行读操作,也可以进行写操作。
有地址的用左值引用,没有地址的用右值引用;有变量名字的用左值引用,没有变量名字的(比如临时量没有名字)用右值引用。
++i与i++
++i可以返回对象的引用,i++必须返回对象的值,所以导致在大对象的时候产生了较大的复制开销,引起效率降低。
内建数据类型的的情况,效率没什么区别
自定义数据类型的情况,++i效率更高