首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
C++
猫小花
创建于2021-07-20
订阅专栏
C++零散基础知识及effective C++知识点整理
暂无订阅
共11篇文章
创建于2021-07-20
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
Leecode Hot100 刷题笔记本-146 LRU缓存(C++版)
146. LRU 缓存 解法: 哈希表 + 双向链表 最近使用的节点位于双向链表头部 不常使用的节点位于双向链表尾部 使用伪头部和伪尾部节点 哈希表里面存放键值对 增加addToHead remove
[Effective C++]条款27: 尽量少做转型动作
1:基础 C++规则的设计目标之-- 保证类型错误绝对不可能发生。 理论上,如果程序很干净地通过编译,就表示它并不企图在任何对象身上执行任何不安全、无意义、愚蠢荒谬的操作。 但是,转型(cast)破坏
[Effective C++]条款26: 尽可能延后变量定义式出现的时间
每当定义一个变量时,就会带来构造和析构的运行成本。因为代码运行到定义时会调用对象的构造函数,当离开作用域时便会调用析构函数。即使我们不使用这个变量,仍需耗费这些成本。 或许你会认为, 不可能定义一个不
[Effective C++]条款25: 考虑写出一个不抛异常的swap函数
1: 类的交换 所谓swap(置换)两对象值,意思是将两对象的值彼此赋予对方。缺省情况下swap动作可由std标准程序库提供的swap算法完成。 代码如下: 只要类型T支持拷贝函数(通过拷贝构造函数和
[Effective C++]条款24:若所有参数皆需类型转换,请为此采用non-member函数
如果需要为某个函数的所有参数(包括被this指针所指的那个隐喻参数)进行类型转换,那么这个函数必须是个non-member函数。 用书上的例子, 构造一个有理数的类, 在里面自定义一个构造函数, 并且
[Effective C++]条款23:宁以non-member、non-friend替换member函数
本条款强调封装性优先于类的内聚逻辑 看书上的例子: 定义了一个WebBrowser类, 在类里面执行清理缓存, 清历史记录和清理cookies. 如果将这三个小函数写进一个函数里面, 那么这个大函数放
[C++]记录使用Lambda遇到的坑
Lambda格式: [函数对象参数] (操作符重载函数参数) mutable 或 exception 声明 -> 返回值类型 {函数体} 第一个坑: 这里的函数对象参数如果是OC对象的话要注意保证这个
[Effective C++]条款22:将成员变量声明为private
【技巧】 切记将成员变量声明为private。这可赋予客户访问数据的一致性、可细微划分访问控制、允诺约束条件获得保证,并提供class作者以充分的实现弹性 先来看看 public成员变量,为什么不采用
[Effective C++]条款21: 必须返回对象时,别妄想返回其reference
1:复习一下堆栈的概念 栈(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 堆区(heap) — 一般由程序员分配释放,通过new/dele
[Effective C++]条款20: 以pass-by-reference-to-const替换pass-by-value
首先了解一下 C/C++ 的参数传递包括: 1:值传递 (pass by value):将变量名作为实参和形参 首先计算出实参表达式的值,然后给对应的形参变量在堆栈中分配一个存储空间,该空间的大小等于
[C++]关于临时变量
产生临时变量的三种情况 1:By value 方式传值 传值的方式传递参数,会在堆中重新分配一个临时区域,将实参的数据copy到临时区域中 引用类型传参不会产生临时变量 2:参数为const的类型 保