摘要: M系统在研究如何简化代码,回归数学本质。 目前涉及的现实元素,基本无例外,可以使用矩阵来表示。 矩阵的元素,需要改造为bit的队列。因为每个矩阵位置,都包含多个状态的组合。如果只是用枚举,可以说要定义的状态非常多,考虑状态的组合可能,就更没可行性。 比方说一个3*3矩阵如下 11110001111 阅读全文
posted @ 2019-08-22 17:58 仙7道 阅读(100) 评论(0) 推荐(0)
摘要: 今天扫了一遍Unix编程艺术。非常粗略看了下目录。 收获几个名词:模块化、文本化、透明性、正交性、数据驱动、专用代码生成、可配置 版权声明:本文为CSDN博主「just_record」的原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog 阅读全文
posted @ 2019-08-07 14:09 仙7道 阅读(240) 评论(0) 推荐(0)
摘要: 话不多说,直接进入主题。 编写一个TCP\UDP网络服务器,自然就想到最简单的api,通过socket、bind、listen、accept、send、recv可以搭建一个阻塞的服务器。 一分钱一分货,简单的搭建,必然带来简陋的性能,或者说,可以通过一些多线程、事件通知等工具,亲手打造一个更优的服务 阅读全文
posted @ 2019-06-03 18:10 仙7道 阅读(730) 评论(0) 推荐(0)
摘要: 问题1:为什么握手需要三次,挥手需要四次? 答:握手不能是两次,如果两次就建立连接,可能会出现客户端以为丢失的SYN,被服务器接收,开启连接,导致服务器被浪费资源。 挥手四次的原因: 1.TCP是全双工的。因为关闭连接是双向的,客户端向服务器发送一个FIN,是通知服务器,自身没有再需要发送的报文了。 阅读全文
posted @ 2019-04-02 08:45 仙7道 阅读(98) 评论(0) 推荐(0)
摘要: 最近走了个菜鸟,接手残余项目。 遇到一个问题,这货用std::mutex在websocketpp::server类的on_message函数里面,不断try lock和lock 这里面要注意几个问题: 这块代码里面有很多问题,trylock和unlock分别放在两个指令响应里面,也就是说,会收到两个 阅读全文
posted @ 2019-03-28 17:41 仙7道 阅读(339) 评论(0) 推荐(0)
摘要: m阶B树性质: 每个节点最少有ceil(m/2)-1个key,最多有m-1个key,最多有m个child 根节点最少可以有2个child 叶子结点都在同一层 B树的插入: 先找到要插入的叶子结点 如果叶子结点key小于m-1,直接插入,完成操作,否则下一步 插入key后,叶子结点找到(m-1)/2位 阅读全文
posted @ 2019-03-11 11:08 仙7道 阅读(141) 评论(0) 推荐(0)
摘要: 1 #include "MyRBTree.h" 2 #include <iostream> 3 4 5 6 MyRBTree::MyRBTree() 7 { 8 root_ = nullptr; 9 } 10 11 12 MyRBTree::~MyRBTree() 13 { 14 } 15 16 1 阅读全文
posted @ 2019-03-04 17:04 仙7道 阅读(227) 评论(0) 推荐(0)
摘要: 重点: 阅读全文
posted @ 2019-02-28 11:30 仙7道 阅读(167) 评论(0) 推荐(0)
摘要: KMP子串匹配算法精髓在确定next数组上,确定next数组注意以下几点: next[0]=-1; next[1]=0; 前面两点是固定的。后面的需要通过递归的思想推导出来: 试想next[j]=k,那么next[j+1]应该等于多少,如果string[j]=string[next[j]],那就说明 阅读全文
posted @ 2019-02-22 17:56 仙7道 阅读(117) 评论(0) 推荐(0)
摘要: Part1: 智能指针: auto ptr已经废掉,不讨论 unique ptr不可传递 share ptr可以作为右值赋值给新的share ptr,内部通过引用计数,自动释放指针。 使用share ptr时,注意循环引用(这种情况与死锁相似),两个类都有share ptr成员变量分别指向对方,如果 阅读全文
posted @ 2019-02-22 14:18 仙7道 阅读(134) 评论(0) 推荐(0)