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

本文探讨了通过延后变量定义来优化程序性能的方法,并通过具体的C++代码示例展示了如何减少不必要的构造和析构操作,进而提高代码效率。

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

/*条款26: 尽可能延后变量定义的出现时间*/
#include<iostream>
#include<string>
#define MinimumPasswordLength 32
using namespace std;
void encrypt(const string &s){

}
string encryptPassword(const string &password){
//	using namespace std;
	//string encrypted;//如果在这个位置定义 函数执行无论是否有异常抛出总是会有encryted的构造与析构的开销
	if (password.length() < MinimumPasswordLength){
		throw logic_error("Password is too short");
	}
	//...
/*	string encrypted;  一次构造
	encrypted = password;  一次拷贝赋值
	encrypt(encrypted);*/
	string encrypted(password);//一次构造并初始化 
	encrypt(encrypted);
	return encrypted;
}
class A{
public:
	A(int i){

	}
};
const int N = 10;
int main(){
	A a(1);// 一次构造 一次析构
	for (int i = 0; i < N; ++i){
		a = i;//某个值   n个赋值
		//....
	}
	
	for (int i = 0; i < N; ++i){
		A b = i;//某个值   n个构造 n个析构
	}
	//考虑 赋值成本低于一组构造与析构 第一个循环较优,否则第二个循环较优
	system("pause");
	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值