条款26:尽可能延后变量定义式的出现时间

本文探讨了在C++编程中如何通过调整函数结构来减少不必要的构造和析构开销,对比了两种方法并分析了其对性能的影响。通过实例说明了在遇到非法输入时,提前返回可以避免无用的资源消耗,以及在变量赋值时,合理选择构造函数能够提升程序运行效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • 开销1:

考虑以下流程:也就是入参为非法值的时候,仍然执行了没有必要的1,增加了构造和析开销。

fun(int* p ){

string tmp;       //1

if(p == null){

    return null; //2

}

...

return tmp;

}

更好的方式是:以下情况出现不合适的入参,直接退出,就不会额外增加//1的构造和析构开销。

fun(int* p ){

if(p == null){

    return null; //2

}

string tmp;       //1

...

return tmp;

}

  • 开销2

方法2比方法1好,方法1使用默认构造函数,并进行了赋值操作,而方法2仅使用了一次copy构造函数。

方法1:

string tmp;

tmp = b

方法2:

string tmp(b);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值