会员
周边
新闻
博问
闪存
众包
赞助商
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
Loading
韬光养晦,有所作为
韬光养晦,有所作为
首页
管理
2021年10月25日
R字符串
摘要: C++11新增了R+字符串表示原始字面量,其中的转移字符不会被解释。 R"delimiter(raw_characters)delimiter" 原始字符串raw_characters必须用小括号包住,其内部的任何转义字符都不会被解释。 原始字符串前后可以添加附加delimiter,且不会出现在编辑
阅读全文
posted @ 2021-10-25 21:54 sandersunkown
阅读(144)
评论(0)
推荐(0)
2021年10月15日
MoreEffect[18] 分期摊还期望的计算
摘要: 过度热情计算法 相比于懒惰计算法,在要求出现之前就完成对应的需求工作,称为__过度热情计算法__。过度热情的计算思路并不与懒惰计算法矛盾,其高效的核心在于优化高频的计算,更高效的处理计算结果,从而降低每次计算时的开销。 缓存 最简单的方法就是__缓存__,即__记录未来可能用到的计算结果__。例如,
阅读全文
posted @ 2021-10-15 22:06 sandersunkown
阅读(60)
评论(0)
推荐(0)
2021年9月30日
MoreEffect[17] 考虑使用懒惰计算法
摘要: 懒惰计算法 懒惰计算法在于将计算延迟到需要计算结果时再去计算,如果永远不需要用到结果,就永久都不去计算。这套方法常见于各种应用领域: 引用计数 字符串的拷贝通常会有较大的开销,如果在复制构造函数中让新旧对象共享同一个字符串数据,就能省去数据的复制步骤。共享数据需要添加引用计数,以记录共享者并确定合适
阅读全文
posted @ 2021-09-30 21:49 sandersunkown
阅读(68)
评论(0)
推荐(0)
MoreEffect[15] 了解异常处理的系统开销
摘要: 支持异常处理本身伴随资源的开销,即使不使用异常特性,这部分开销仍是不可避免的,但了解其有助于将开销最小化。异常处理的开销包括: 建立数据结构跟踪对象是否被完全构造、在抛出异常时应释放哪个对象,并不断更新这些数据。 这部分的开销比较小,但是不可避免。因为异常是C++的一部分,除非编译器能够自由开关是否
阅读全文
posted @ 2021-09-30 21:48 sandersunkown
阅读(73)
评论(0)
推荐(0)
2021年8月22日
MoreEffect[11] 禁止异常信息传递到析构函数外
摘要: 在两种情况下会调用析构函数:正常情况下删除对象,即显式调用或者对象离开声明周期;异常传递的栈开解,由异常处理系统删除对象。 可见,调用析构函数时异常可能处于激活状态,但不能再析构函数内部做判断,因此__必须在写析构函数时保守的假设异常被激活。如果一个异常被激活的同时,析构函数也抛出异常,并导致程序控
阅读全文
posted @ 2021-08-22 23:11 sandersunkown
阅读(51)
评论(0)
推荐(0)
2021年8月19日
MoreEffect[9] 使用析构函数防止资源泄漏
摘要: 有以下函数: void function() { Awesome * obj = new Awesome; obj->process(); delete obj; } 当process发生异常时,function没有捕获异常;异常将会被传递到function的调用者,而process之后的代码则被跳
阅读全文
posted @ 2021-08-19 21:19 sandersunkown
阅读(64)
评论(0)
推荐(0)
MoreEffect[10] 在构造函数防止资源泄漏
摘要: 有以下构造函数和析构函数: BookEntry::BookEntry() : pImage(nullptr) , pClip(nullptr) { pImage = new Image(); pClip = new Clip(); } ~BookEntry() { delete pImage; de
阅读全文
posted @ 2021-08-19 21:19 sandersunkown
阅读(59)
评论(0)
推荐(0)
2021年8月13日
MoreEffect[8] 理解不同含义的new和delete
摘要: C++使用new操作符(new operator / new)来完成动态内存的分配,其的实现分为两步:通过operator new分配足够的堆内存,调用构造函数初始化内存对象。类似的,delete首先调用析构函数,然后通过operator delete释放内存。 new、delete操作符和size
阅读全文
posted @ 2021-08-13 10:02 sandersunkown
阅读(70)
评论(0)
推荐(0)
2021年8月10日
MoreEffect[7] 不要重载&&、||和逗号运算符
摘要: C++允许许多运算符的重载,但能重载不是重载的理由。运算符重载目的是使程序更加可读、书写和理解,而不能违背原有的特性去迷惑他人。如果没有一个好的理解,不要去重载。 &&和||运算符 C/C++在布尔表达式运算使用短路运算法:一旦确定了表达式的真假,不会运算剩下的表达式。如expression1 &&
阅读全文
posted @ 2021-08-10 21:59 sandersunkown
阅读(62)
评论(0)
推荐(0)
MoreEffect[6] 自增、自减运算符前缀形式和后缀形式的区别
摘要: 自增、自减的前缀即先增/减后取回,后缀则是取回然后增/减。 运算符重载差异 为了区分前缀和后缀,后缀形式的重载函数有int型参数,在调用处编译器会传一个0作为函数参数。这个参数没有实际用途,为了避免编译器对未使用参数的警告,应避免在声明和实现给这个参数命名。 class UPInt{ public:
阅读全文
posted @ 2021-08-10 21:53 sandersunkown
阅读(477)
评论(1)
推荐(1)
下一页
公告