以下是一些编程方面的建议,目的是为了提升C++程序的效率(这里的效率以时间为评判标准),欢迎指正和补充
- 场景:当设计方法时,将方法设计成值传递还是引用或者指针传递
建议:当变量所占内存大小与指针所占内存差别不大时(int、double),值传递和引用、指针传递的效率一样,当值传递明显要大于8字节时,采用引用、指针传递会更好(string、自定义变量类型)
原理:当使用引用或者指针时,拷贝的是变量的地址值,大小为8字节,而值传递拷贝的是变量本身 - 场景:当需要递增变量时,使用前置递增还是后置递增
建议:非循环下,由于编译器优化,两者效率一致,无需分别;在循环里面编译器没有进行优化,若只是想要递增一个变量,使用前置递增
原理:递增运算符有两种,前置递增++i,和后置递增i++,前者直接对变量本身递增,返回的是对变量本身的引用,后者则先拷贝原对象,并返回变量的副本,再对原对象进行递增操作。 - 场景:代码1和代码2,哪种方式效率更高?
建议:调查所使用的变量类型的赋值操作函数和(构造函数+析构函数)哪个开销大
原理:对于代码1,需要调用ClassTest的构造函数1次,赋值操作函数(operator=)100次;对于代码2,需要高用(复制)构造函数100次,析构函数100次。
- 场景:当需要强制类型转换类指针时,使用dynamic_cast还是static_cast
建议:注重安全性,使用dynamic_cast,注重效率,使用static_c

最低0.47元/天 解锁文章
11万+

被折叠的 条评论
为什么被折叠?



