Effective C++ 3nd 读书摘要(Third Edition 55 Specific Ways to Improve Your Programs and Design)

别再只看读写速度了!聊聊手机闪存eMMC、UFS3.1和SSD背后的功耗与体积玄学 本文深入探讨手机闪存技术eMMC、UFS3.1和SSD在功耗与体积设计上的关键差异。通过对比接口技术、封装工艺和温度管理,揭示移动存储如何在有限空间内平衡性能与能效,为消费者提供选购参考。重点关注UFS3.1的差分信号设计和全双工架构带来的显著优势。 阅读详情

一、让自己习惯C++

 

Item1. 视C++为一个语言联邦

 

C++由以下部分组成:C、Object-Oriented C++、Template C++、STL

 

Item2. 尽量以const、enum、inline代替#define

 

Item3. 尽可能使用const

 

1.一共有这样几种const用法:

另外,以下两种形式是一样的:

void f1(const Widget *pw);         // f1 takes a pointer to a
                                                   // constant Widget object
void f2(Widget const *pw);         // so does f2

迭代器也有const:

const std::vector<int>::iterator iter =     // iter acts like a T* const
std::vector<int>::const_iterator cIter =   //cIter acts like a const T*

 

2. 让non-const函数调用const函数以避免重复:

const函数可以使得返回的const指针、const引用等等均可以调用一些方法(const对象只能调用const函数)

 

Item4. 确保对象在使用前已经先被初始化

重要的是不能混淆赋值(assignment)与初始化(initialization),通常后者的效率更高,初始化通过成员初值列表。

最好以申明次序作为成员列表中的次序。

 

Singleton模式的一个应用:定义于不同编译单元的non-local static对象的初始化次序

即以local static对象代替non-local static对象

 

二、构造、析构、赋值运算

Item5. 了解C++默默编写并调用了哪些函数

这些是C++会默认生成的(如果你没有定义):copy构造、copy assignment、析构(non-virtual)、default构造,所有这些都是public而inline的。

(注:上面的析构(non-virtual),除非其base class是虚析构)

 

Item6. 若不想使用编译器自动生成的函数,就该明确拒绝

TODO

RPN 解析 RPN全称是Region Proposal Network,Region Proposal的中文意思是“区域选取”,也就是“提取候选框”的意思,所以RPN就是用来提取候选框的网络; 1. RPN的意义 RPN第一次出现在世人眼中是在Faster RCNN这个结构中,专门用来提取候选框,在RCNN和Fast RCNN等物体检测架构中,用来提取候选框的方法通常是Selective Se 阅读详情

相关推荐

VSCode玩转STM32:手把手教你配置EIDE插件与OpenOCD调试(附野火DAP配置文件详解)

本文详细介绍了如何在VSCode中配置EIDE插件与OpenOCD进行STM32开发,特别针对野火DAP调试器提供了配置文件详解。从基础环境搭建到深度调试技巧,帮助开发者高效完成STM32项目开发,实现现代化嵌入式开发工作流。

weixin_26905487的博客 553

[翻译] Effective C++, 3rd Edition, Item 31: 最小化文件之间的 compilation dependencies(编译依赖)(上)

Item 31: 最小化文件之间的 compilation dependencies(编译依赖)作者:Scott Meyers译者:fatalerror99 (iTePubs Nirvana)发布:http://blog.youkuaiyun.com/fatalerror99/你进入到你的 C++ 程序中,并对一个 class 的 implementation(实现)进行了细微的改变。提醒你

艺术编程 4619

自锁电路设计

Hi,uu们,是不是经常要用到自锁电路,通常不是使用555芯片就是用比较器来做自锁,今天我们来简单看下自锁电路的设计.图1采用了比较器构建了一个自锁电路,采用低电平复位,当需要复位的时候志需要将反向端的二极管拉低一下即可,免去 三极管控制同相端和电源短接的麻烦。图1:比较器构建的自锁电路也可以使用555去构建,如下图2所示.图2:使用555构建的自锁电路工作原理见555的真值表,真值表如表1所示.表1:555电路真值表相对来说555还是比较贵,所以我就想能不能有个便宜的方法做个自锁电路,构建电路如下图3所示

weixin_43884675的博客 7069

[翻译] Effective C++, 3rd Edition, Item 27: 最少化 casting(强制转型)(下)

(点击此处,接上篇)在深入探究 dynamic_cast 的设计意图之前,值得留意的是多数 dynamic_cast 的实现都相当慢。例如,至少有一种通用的实现部分地基于对 class names(类名)进行 string comparisons(字符串比较)。如果你在位于一个 single-inheritance hierarchy(单继承体系)四层深处的一个 object 上执行 dyna

艺术编程 2677

Unity 升级 xLua 版本,编译不同平台链接库

Unity 升级 xLua 详解

LymanCao的专栏 1802

DataWorks PyODPS第三方包全攻略:从打包到加载的完整流程

本文详细介绍了在DataWorks的PyODPS节点中使用第三方Python包的完整流程,包括环境限制、打包工具pyodps-pack的使用、资源上传与加载实战,以及特殊场景处理技巧。通过本文,开发者可以掌握在MaxCompute受限环境中灵活使用自定义依赖的方法,提升数据处理效率。

dd012的博客 993

[翻译] Effective C++, 3rd Edition, Item 30: 了解 inlining(内联化)的来龙去脉(上)

Item 30: 了解 inlining(内联化)的来龙去脉作者:Scott Meyers译者:fatalerror99 (iTePubs Nirvana)发布:http://blog.youkuaiyun.com/fatalerror99/inline functions ——多么棒的主意啊!它们看起来像 functions,它们产生的效果也像 functions,它们在各方面都比 mac

艺术编程 5420

Codex 100个真实案例 - 用AI生成建筑平面图SVG(室内设计师的新武器)

本案例用 Codex 生成一套完整的 Python 脚本,自动绘制 SVG 格式的建筑平面图。我们会设计一个90平两室一厅的户型——客厅、主卧、次卧、厨房、卫生间一应俱全,还会自动摆放家具(沙发、床、餐桌、橱柜)、标注尺寸和面积、绘制水电路走向、生成多种配色方案。最终输出的 SVG 文件可以直接用浏览器打开展示,也可以转成 PNG 交给客户。室内设计师看了都说好!

yueyeguzhuo的专栏 766

[翻译] Effective C++, 3rd Edition, 附录 B. 第二和第三版之间的 Item 映射

附录 B. 第二和第三版之间的 Item 映射作者:Scott Meyers译者:fatalerror99 (iTePubs Nirvana)发布:http://blog.youkuaiyun.com/fatalerror99/Effective C++ 的第三版在很多方面与第二版不同,其中最引人注目的是它包含很多新的信息。然而,第二版的大部分内容依然保留在第三版中,虽然经常会改变形式和位置

艺术编程 5819

YOLO11涨点优化:注意力魔改 | 新颖的多尺度卷积注意力(MSCA),即插即用,助力小目标检测

多尺度卷积注意力(MSCA),有效地提取上下文信息,新颖度高,创新十足。

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 6323

【2024-06-21】网易互娱秋招实习笔试三道编程题解

恭喜发现宝藏!搜索公众号【TechGuide】回复公司名,解锁更多新鲜好文和互联网大厂的笔经面经。作者@TechGuide【全网同名】

试问道几许 1055

Effective系列经典著作,铺就程序员殿堂之路

Effective系列图书是我们学习中难以绕开的经典。经典书籍需要不断被重读,因为每一次重读都会带来新的体会。本文带来了5本Effective系列的经典著作,让我们一同迎着大师们的智慧之光,走向卓越。 1 《Effective C++:改善程序与设计的55个具体做法(第三版)中文版(双色)》 Effective C++: 55 Specific Ways to Improve Your Programs and Designs,3/e 【美】Scott Meyers 著 侯捷 译 有人说C++程序员可以

博文视点(北京)官方博客 1044

ros系统在Debian系统上的移植

摘要:本文详细介绍了在Debian系统上移植ROS(机器人操作系统)的完整流程。主要内容包括:1)Debian版本与ROS版本的对应关系;2)配置软件源和安装依赖的具体命令;3)安装ROS核心组件和开发工具的步骤;4)常见兼容性问题的解决方案;5)性能优化和维护建议。重点强调了版本匹配的重要性,推荐选择LTS版本组合(如Debian11+ROS Noetic),并提供了从基本安装到自定义功能包编译的全套方案。文中包含详细的终端命令,可帮助用户顺利完成ROS移植并解决可能遇到的问题。

start_up_go的博客 1493

[翻译] Effective C++, 3rd Edition, 附录 A. 超越 Effective C++

附录 A. 超越 Effective C++作者:Scott Meyers译者:fatalerror99 (iTePubs Nirvana)发布:http://blog.youkuaiyun.com/fatalerror99/Effective C++ 覆盖了我认为对当前的 C++ 程序员最重要的通用指导方针,但是如果你有兴趣在更多的方面提升你的效力,我推荐你去研读我的其他 C++

艺术编程 6445

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

C# 世界的《Effective C++》,来自.Net之父的核心揭秘

作为.NET程序员,如果只读三本书,那么《框架设计指南:构建可复用.NET库的约定、惯例与模式(第3版)》这本书一定不容错过!

博文视点(北京)官方博客 1137

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

Effective C++, Third Edition: 55 Specific Ways to Improve Your Programs and Designs - Cover

作者:Scott Meyers译者:fatalerror99 (iTePubs Nirvana)发布:http://blog.youkuaiyun.com/fatalerror99/

艺术编程 3256

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

《effective c++(第三版)》55个具体做法1

做法1

程序的尽头是数学,一日不推导赶不上买买提 210

[翻译] Effective C++, 3rd Edition, Item 3: 只要可能就用 const

Item 3: 只要可能就用 const作者:Scott Meyers译者:fatalerror99 (iTePubs Nirvana)发布:http://blog.youkuaiyun.com/fatalerror99/关于 const 的一件美妙的事情是它允许你指定一种 semantic(语义上的)约束:一个特定的 object(对象)不应该被修改。而 compilers(编译器)将执行

艺术编程 6679

Effective C++ 3nd 读书摘要(七、模板与泛型编程)Item41 - 48

七、模板与泛型编程C++ template mechanism is itself Turing-complete: it can be used to compute any computable value. Item41. 了解隐式接口和编译期多态对class而言,接口是显式的,以函数签名为中心;多态是通过virtual函数发生于运行期。对template来讲,接口是隐式的,奠基于有

thy专栏 1050

Effective C++ 3nd 读书摘要(一、让自己习惯C++ ; 二、构造,析构,赋值运算)Item1 - 12

一、让自己习惯C++Item1. 视C++为一个语言联邦C++由以下部分组成:C、Object-Oriented C++、Template C++、STL Item2. 尽量以const、enum、inline代替#define Item3. 尽可能使用const1.一共有这样几种const用法:char greeting[] = "Hello";char *p = greetin

thy专栏 916

Effective C++ 3nd 读书摘要(三、资源管理 ;四、设计与声明;五、实现)Item13 - 31

三、资源管理Item13. 以对象管理资源在构造函数中获得资源并在析构函数中释放资源。如tr1::shared_ptr Item14. 在资源管理类中小心copying行为抑制copying、施行引用计数法 Item15. 在资源管理类中提供对原始资源的访问一如Item18的忠告,通常显式转换函数如get()、string::c_str()是比较受欢迎的,因为不太可能被误用。 

thy专栏 891

Effective C++ 3nd 读书摘要(八、定制new和delete)Item49 - 52

八、定制new和deleteItem49. 了解new-handler的行为当然operator new抛出异常以反映内存需求出错之前,会先调用一个客户指定的错误处理函数(new-handler)。namespace std {  typedef void (*new_handler)();  new_handler set_new_handler(new_handler p) throw();}

thy专栏 890

Effective C++ 3nd 读书摘要(六、继承与面向对象设计)Item32 - 40

六、继承与面向对象设计Item32. 确定你的public继承塑模出is-a关系(即Liskov Substitution Principle)下面是一个不严谨的public继承:class Bird {public: virtual void fly(); // birds can fly ...};class Penguin:p

thy专栏 867

Effective C++ 3nd 读书摘要(九、杂项讨论)Item53 - 55

九、杂项讨论Item53. 不要轻忽编译器的警告比如:class B {public: virtual void f() const;};class D: public B {public: virtual void f();}; 编译器会警告:warning: D::f() hides virtual B::f()因为D中的f()没有const。 

thy专栏 794

深挖C++:类和对象(中)

(先进后出)

xys_678的博客 254

ThunderKittens 深度解析:一个不基于 MLIR 的 C++ 模板 GPU DSL

Triton 是"让更多人能写 GPU kernel",ThunderKittens 是"让会写的人写得更爽"。前者用 MLIR 换易用性,后者用 C++ 模板换可控性。它们不是替代关系,而是覆盖了 GPU 编程光谱的两端。ThunderKittens 的出现,本质上是对"GPU DSL 必须基于 MLIR"这一默认假设的挑战。编译期类型系统本身就可以是一个强大的 DSL 基础设施,不需要中间 IR,不需要黑盒 pass,也能实现 tile 级抽象和零运行时开销。

Maxwell_Newton的博客 349
上一篇: More Effective C++ 整理后感
下一篇: 学了三天TCL,写了个小程序,到此为止
thy38
博客等级 码龄19年 184粉丝 116原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值