摘要:
1 C++11多线程thread 重点: join和detach的使用场景 thread构造函数参数 绑定c函数 绑定类函数 线程封装基础类 互斥锁mutex condition notify、wait lock_guard/unique_lock function和bind 异步future/pa 阅读全文
摘要:
一、智能指针 为什么需要智能指针? 智能指针主要解决一下问题: 内存泄漏:内存手动释放,使用智能指针可以自动释放 共享所有权的指针的传播和释放,比如多线程使用同一个对象时析构的问题。 C++里面的四个智能指针,auto_ptr,shared_ptr,unique_ptr,weak_ptr其中后3个是 阅读全文
摘要:
学习了好几遍的设计模式,为了防止自己遗忘,做一下笔记,总结一下,自己学习过的设计模式,如果有什么错误,敬请谅解。 单一职责原则 描述:A class or module should have a single responsibility 中文:一个类或者模块只负责完成一个职责(或者功能)。 注意 阅读全文
摘要:
今天我们谈论一下散列表,我之前的两个博文写的都是关于平衡二叉树的 平衡二叉树 增删改查时间复杂度为log2n 平衡的目的是增删改以后,保证下次搜索能稳定排除一半的数据; 总结:通过比较保证有序,通过每次排除一半的元素达到快速索引的目的; 散列表 根据KEY计算KEy在表中的位置的数据结构;是key和 阅读全文
摘要:
B树的实现 今天我们就来实现以下B树,B树有什么特点那?我们来列举一下 每个非叶子节点中存放若干关键字数据,并且有若干指向儿子节点的指针。指针数目=关键字数目+1 根节点有最少1个,最多m-1个关键字,最少2个,最多m个子节点。 非根节点最少有m/2,最多m-1个关键字 每个节点中的关键字从左到右以 阅读全文
摘要:
最近闲来无事,一直没有研究过红黑树,B树,B+树之类的,打算自己用C语言实现一下它们。 红黑树的性质定义: 节点只能是黑色或者红色。 根节点必须是黑色。 每个叶子节点是黑色节点(称之为NIL节点,又被称为黑哨兵);可以理解为红黑树中每个节点都有两个子节点,除了黑色的空节点。 每个红色节点的两个子节点 阅读全文
摘要:
Xshell的安装和连接 由于我们打算通过Xshell进行命令的输入,就不再进行VMWARE-TOOLS的安装。 我们直接进行安装Xshell 并开始连接我们创建的创建的虚拟机 我们可以通过XshelL的官网申请使用家庭和个人的免费版进行使用。 下载安装完毕后,我们就要开始进行连接 我们已经连接成功 阅读全文
摘要:
我们使用VMWARE来安装Debian11系统来进行我们的LINUX学习 [ ] Debian虚拟机的安装 [ ] vmware-tools的安装 [ ] xShell的安装使用 [ ] samba的配置 [ ] gcc环境的配置 Debian虚拟机的安装 前面创建虚拟机的过程我就省略了 选择第一项 阅读全文
摘要:
我们先从最常见的C++类的一个实现开始说起, 这样的代码就会破坏我们面向对象的封装性,因为调用者会知道API和IMPLEONE的存在。 怎么样完成高内聚,低耦合这个要求那? 那就用一下我们的简单工厂模式,在头文件中 然后就是如何调用这个简单工厂 总结一下:我们可以通过创建一个类作为工厂提供我们所需要 阅读全文
摘要:
我们开始编写第一个驱动程序,首先我们需要进行项目的创建,在以前的随笔中,我们已经学会了如何去建立双机调试环境。 我们打开VS2017,建立如图所示的项目,取名为:MyFirstDriver.点击确定 由于,我写这个都是写.C的文件,因此我尝试使用.CPP文件,实现一下第一个FirstDriver. 阅读全文