C++技能基础:提升C++程序运行效率的方法总结

以下是一些编程方面的建议,目的是为了提升C++程序的效率(这里的效率以时间为评判标准),欢迎指正和补充

  1. 场景:当设计方法时,将方法设计成值传递还是引用或者指针传递
    建议:当变量所占内存大小与指针所占内存差别不大时(int、double),值传递和引用、指针传递的效率一样,当值传递明显要大于8字节时,采用引用、指针传递会更好(string、自定义变量类型)
    原理:当使用引用或者指针时,拷贝的是变量的地址值,大小为8字节,而值传递拷贝的是变量本身
  2. 场景:当需要递增变量时,使用前置递增还是后置递增
    建议:非循环下,由于编译器优化,两者效率一致,无需分别;在循环里面编译器没有进行优化,若只是想要递增一个变量,使用前置递增
    原理:递增运算符有两种,前置递增++i,和后置递增i++,前者直接对变量本身递增,返回的是对变量本身的引用,后者则先拷贝原对象,并返回变量的副本,再对原对象进行递增操作。
  3. 场景:代码1和代码2,哪种方式效率更高?
    建议:调查所使用的变量类型的赋值操作函数和(构造函数+析构函数)哪个开销大
    原理:对于代码1,需要调用ClassTest的构造函数1次,赋值操作函数(operator=)100次;对于代码2,需要高用(复制)构造函数100次,析构函数100次。
  4. 场景:当需要强制类型转换类指针时,使用dynamic_cast还是static_cast
    建议:注重安全性,使用dynamic_cast,注重效率,使用static_c
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值