摘要: 这里简要的记述一下STL常用容器的实现原理,要点等内容。 vector vector是比较常用的stl容器,用法与数组是非类似,其内部实现是连续空间分配,与数组的不同之处在于可弹性增加空间,而array是静态空间,分配后不能动态扩展。vecotr的实现较为简单,主要的关键点在于当空间不足时,会新分配 阅读全文
posted @ 2020-06-05 14:42 让我思考一下 阅读(919) 评论(0) 推荐(0) 编辑
摘要: 拷贝构造函数调用的几种情况:当用类的一个对象去初始化该类的另一个对象(或引用)时系统自动调用拷贝构造函数实现拷贝赋值。若函数的形参为类对象,调用函数时,实参赋值给形参,系统自动调用拷贝构造函数。当函数的返回值是类对象时,系统自动调用拷贝构造函数。 阅读全文
posted @ 2020-06-05 14:10 让我思考一下 阅读(875) 评论(0) 推荐(0) 编辑
摘要: 自旋锁概念 自旋锁应该是Linux内核中使用最多的锁了,其它锁很多都依赖自旋锁实现。自旋锁概念上简单,一个自旋锁是一个互斥设备,只能有2个值:"上锁"和"解锁"。它常常实现为一个整数值中的一个单个位,想获取一个特殊锁的代码测试相关的位,如果锁是可用的,这个"上锁"位被置位并且代码继续进入临界区;相反 阅读全文
posted @ 2020-06-04 11:18 让我思考一下 阅读(390) 评论(0) 推荐(0) 编辑
摘要: 这里记录一下学习与使用Protocol Buffer的笔记,优点缺点如何使用这里不再叙述,重点关注与理解Protocol Buffers的工作原理,其大概实现。 我们经常使用Protocol Buffer进行序列化与反序列化。理解Protocol Buffer的工作原理,就要理解序列化与反序列化。 阅读全文
posted @ 2020-06-04 09:39 让我思考一下 阅读(1205) 评论(0) 推荐(0) 编辑
摘要: RefCell Rust在编译阶段会进行严格的借用规则检查,规则如下: 在任意给定时间,要么只能有一个可变引用,要么只能有多个不可变引用。 引用必须总是有效。 即在编译阶段,当有一个不可变值时,不能可变的借用它。如下代码所示: 会产生编译错误: rust error[E0596]: cannot b 阅读全文
posted @ 2019-12-04 11:21 让我思考一下 阅读(3469) 评论(0) 推荐(0) 编辑
摘要: 树适合于表示某些领域的层次结构(比如Linux的文件目录结构),使用树进行查找比使用链表快的多,理想情况下树的查找复杂度 ,而链表为 ,但理想情况指的是什么情况呢?一般指树是完全平衡的时候。哪最坏的情况是什么呢?就是树退化为链表的时,这时候查找的复杂度与链表相同。就失去了树结构的意义。所以树的平衡是 阅读全文
posted @ 2019-12-03 09:35 让我思考一下 阅读(1624) 评论(0) 推荐(0) 编辑
摘要: 树和图是两大类常用的数据结构,在树这一类数据结构中,二叉查找树是掌握后续各种树的基础,所以,我们先学习二叉查找树。看一下二叉查找树是怎么实现的,怎么实现常规的插入、删除、查找等操作。 一、树的相关概念 空树:是高度为0的合法树; 单一节点:是高度为1的树(是节点既是根也是叶子的唯一情况); 极端情况 阅读全文
posted @ 2019-12-02 10:16 让我思考一下 阅读(428) 评论(0) 推荐(0) 编辑
摘要: Rust编译时遇到如下问题: 解决办法:更换Crates源 Rust开发时有时使用官方的源太慢,可以考虑更换使用国内中科大的源。更换方法如下: 在 中添加如下内容: 如果所处的环境中不允许使用 git 协议,可以把上述地址改为: 为什么这么配置可以参考 "The Cargo Book/Source 阅读全文
posted @ 2019-11-29 19:52 让我思考一下 阅读(2054) 评论(0) 推荐(0) 编辑
摘要: Raft共识算法在分布式系统中是常用的共识算法之一,论文原文 "In Search of an Understandable Consensus Algorithm" ,作者在论文中指出Poxas共识算法的两大问题,其一是难懂,其二是应用到实际系统存在困难。针对Paxos存在的问题,作者的目的是提出 阅读全文
posted @ 2019-08-11 16:24 让我思考一下 阅读(1925) 评论(0) 推荐(0) 编辑
摘要: 观察者模式(Observer Pattern) —— 定义对象间的一种一对多的依赖关系,以便当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并自动刷新。 观察者模式可以理解为发布 订阅模式,即多个订阅者(观察者)向发布者(被观察者)订阅状态信息,当发布者更新状态时会将状态信息向它的订阅者发布 阅读全文
posted @ 2019-08-10 19:56 让我思考一下 阅读(363) 评论(0) 推荐(0) 编辑