客户端:UaExpert 由于在官网下载需要注册,步骤比较麻烦,因此在这里提供迅雷云盘下载链接:链接:https://pan.xunlei.com/s/VN1L...[htt...
![240](https://cdn2.jianshu.io/assets/default_avatar/4-3397163ecdb3855a0a4139c34a695885.jpg?imageMogr2/auto-orient/strip|imageView2/1/w/240/h/240)
客户端:UaExpert 由于在官网下载需要注册,步骤比较麻烦,因此在这里提供迅雷云盘下载链接:链接:https://pan.xunlei.com/s/VN1L...[htt...
异常安全(exception-safe)指的是: 没有资源泄露,这里的资源包括内存、文件句柄、锁…… 数据没有败坏,比如不会有野指针的出现…… 基于异常安全的定义,有三种级别...
https://leetcode-cn.com/problems/letter-combinations-of-a-phone-number/[https://leetcod...
https://leetcode-cn.com/problems/container-with-most-water/[https://leetcode-cn.com/pro...
https://leetcode-cn.com/problems/longest-substring-without-repeating-characters/[https:...
https://leetcode-cn.com/problems/add-two-numbers/[https://leetcode-cn.com/problems/add-...
https://leetcode-cn.com/problems/spiral-matrix/[https://leetcode-cn.com/problems/spiral...
C++ 中,handles包含以下几类 指针 引用 迭代器 要尽量避免函数返回 handles,一方面,留下了允许客户修改数据的隐患;另一方面,即使加上了const等限制,仍...
转型操作其实是一个没有办法的办法,一般情况下,能不用就不用;如果转型不可避免,也要用最安全的办法进行 旧式转型操作 这是我们惯用的两种旧式转型方法,比如从int转型到doub...
好处: 避免不必要的开销(构造、析构) 增加代码的可读性 对于循环中,是将变量定义在循环外好,还是循环内好?这个问题见仁见智,在我看来,如果赋值操作和构造的开销差不多大, 那...
其实这条 Term 的重点不在于抛出异常,而在于怎么实现一个高效的swap,不抛出异常的要求是相对比较好保证的 标准库中swap的实现大概是这样的 其中涉及到一次拷贝构造,两...
尽管隐式类型转换不是一个好东西,但是有时我们又不得不需要它,比如在做数学计算的时候,必须允许不同类型的数字进行混合运算,比如我们有一个小数类 如果我们将乘法运算声明为 mem...
面向对象的核心之一是:封装性越强越好。而封装的含义是:越少东西被看到,封装性越好。因为当我们改动代码的时候,对其余功能的影响就越小,我们就可以更加灵活地修改代码,同时将影响降...
将数据成员声明为private的好处有 对用户来说,更一致的访问方式:通过函数访问,而不需要再记忆访问数据成员时需不需要加括号 更精细的权限控制,如只读、只写、读写…… 封装...
pass-by-reference-to-const 的好处: 避免拷贝构造函数的开销 避免 slicing 问题,因为引用类似于指针,可以实现多态;下面例子中解释得很清楚 ...
有时候我们会写出这样考虑不够周全的代码 实际调用这句时,如果是 会有三个动作发生 调用new 构造shared_ptr 调用priority() 这三个动作的调用顺序是不固定...
析构函数往往身肩销毁资源等一些十分重要的责任,但如果析构函数在销毁资源的过程中吐出了一个异常,它就没有办法继续正常地执行它的任务,会造成资源泄漏等等严重的后果,所以我们不能够...
在分析表达式的时候,我们还是需要关注运算符的优先级,才能得到正确的类型 int *p[3] 这种定义方式是我们非常熟悉的一种。 可以看出,定义数组的 [] 的优先级还是要高于...