首页 > 编程语言 >Effective C++ - 条款26 - 尽量延后变量定义的出现时间

Effective C++ - 条款26 - 尽量延后变量定义的出现时间

时间:2022-11-06 19:35:12浏览次数:40  
标签:26 变量 Effective C++ 构造 赋值 成本 定义

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

标签:26,变量,Effective,C++,构造,赋值,成本,定义
From: https://www.cnblogs.com/ijpq/p/16863493.html

相关文章

  • C++内部类调用外部类的成员
    #include<bits/stdc++.h>usingnamespacestd;classOut{public:inti,j;Out(){i=1;j=2;in=newIn;in->......
  • C++ get random via random_device, mt19937_64,uniform_int_distribution, quick so
    #include<chrono>#include<ctime>#include<fstream>#include<iostream>#include<random>#include<sstream>#include<thread>#include<unistd.h>#include......
  • C++构造函数、隐式的类类型转换、类的静态成员---C++ primer 7.5 7.6笔记
    7.5构造函数再探构造函数初始化列表const和引用必须进行初始化,而不能在构造函数中赋值。classConstRef{public:ConstRef(intii);private:......
  • [dp 记录]szjudge#26 括号序列
    dp部分平凡,但是后面找最值是值得深思的。题意:给出两个由左右括号形成的字符串,求在长度最小的基础上字典序最小的合法括号序列,使给出字符串均为其子串。\(|s|,|t|\leq30......
  • C/C++ 数组、指针与函数
    数组与指针数组名数组第一个元素的地址intar[10];int*p=ar;p==&ar[0];*p==ar[0];多维数组可看做一维数组,其每个元素也是一个数组intar[4][5];int(*......
  • C++图书馆管理系统
    C++图书馆管理系统程序设计题六:图书馆管理系统1问题描述该系统要求建立一个图书馆管理系统,并具有排序、查找、计算、显示等功能。通过此课题,熟练掌握文件、数组、指针......
  • C/C++中的枚举数据类型
    关键字:Emum自定义名称{a=1b=2,c=3,d=4}box;定义好之后可以直接通过box关键字调用ennumbag{book1="百年孤独",book2="时间简史",book3="简爱"}boo......
  • C/C++表达式求值(带括号)
    C/C++表达式求值(带括号)实验内容及要求(功能)1.友好的用户界面,给出简单用户帮助2.通过键盘输入表达式(负数,小数),表达式可包含加(+)、减(-)、乘(*)、除(/)、求模(%)、开......
  • C++ Balanced Braces
    C++BalancedBracesAstringofcharactershasbalancedbraces(parentheses,curlybraces,andsquarebraces)ifeachright-facingbraceoccurringinthestrin......
  • Effective C++ - 条款17 - 总是以独立语句将new对象放入到智能指针中
    这个条款所说的意思就是,不要把new对象并放入智能指针这个操作放入到一个别的过程之中。例如,如果把new对象并放入智能指针放入到一个传参过程之中,可能会发生其他参数的执行......