- 变量的类型带有构造和析构时,定义一个变量会承受这两个成本,因此在使用时再定义它。例如,如果执行过程中可能被exception中断导致预先定义的变量没有使用,那么这个成本最好不要提前承担。
- 再比如,不要多承担一次赋值的成本。直接在构造时初始化预期的值。
- 一种常见的场景:for循环中需要使用某个变量,是
预先定义并每轮循环中对其赋值
好?还是每轮循环中临时构造
好?这取决于具体的构造、析构、赋值成本。如果是前者,那么成本是1个构造+1个析构+n个赋值;如果是后者,成本是n个构造、n个析构(如果没傻到在这里面又进行了额外的赋值)