- 博客(22)
- 收藏
- 关注
原创 Skynet学习二
自上一章开始从main函数到启动log snlua 以及启动了monitor socket timer worker线程 并且对woker线程去message queue以及消息调度有了了解 下面将对snlua到lua进行剖析一个服务启动过程是query(.so) create init release (singnal之后探讨)下面先从snlua的snlua_create函数开始,因为skynet_context_new中先query模块之后就是create函数struct snlua *snlu
2020-12-04 22:40:08
284
原创 Skynet学习一
Skynet学习skynet 节点通过运行 skynet 主程序启动,必须在启动命令行传入一个 Config 文件名作为启动参数。skynet 会读取这个 config 文件获得启动需要的参数。./skynet ./examples/config第一个启动的服务是 logger ,bootstrap 这个配置项关系着 skynet 运行的第二个服务。在skynet-src:skynet_main.c中intmain(int argc, char *argv[]) { const char *
2020-12-04 17:21:25
346
原创 二叉树 遍历c++模板实现
1.结构节点定义就是左节点 右节点template<class T>struct TreeNode { TreeNode(T t) { value = t; left = NULL; right = NULL; } TreeNode() = default; T value; TreeNode<T>* left; TreeNode<T...
2020-04-11 15:41:03
213
1
原创 C++11较为优雅的回调函数写法
管理类 所有的子模块都注册在这个类 这个类使用单例模式 使用回调来通知子模块.h#pragma once#include "GUI.h"#include "logic.h"#include <functional>#include <iostream>#include <queue>#include <vector>#include...
2020-04-10 16:39:31
1993
原创 算法之查找算法
1.顺序查找算法时间复杂度o(n)//对于无序int SequenceSearch(vector<int>& src, int target) { for (int i = 0; i < src.size(); i++) { if (src[i] == target) { return i; } } return -1;}2.二分查找算法...
2020-04-09 17:38:38
93
原创 引用计数实现C++
参考C++引用计数实现一种内存管理技术,是指将资源(可以是对象、内存或磁盘空间等等)的被引用次数保存起来,当被引用次数变为零时就将其释放的过程。使用引用计数技术可以实现自动资源管理的目的。同时引用计数还可以指使用引用计数技术回收未使用资源的垃圾回收算法。template<class T>class Ref {private: int m_count; T* Entity;...
2020-04-09 11:18:44
385
原创 数据结构树遍历前序 中序 和后序以及层序非递归实现
typedef struct TreeNode{ string val; TreeNode* left; TreeNode* right; TreeNode() { val = "0", left = nullptr, right = nullptr; } TreeNode(string x) { val = x, left = nullptr, right = nullptr; }}...
2020-04-09 09:34:26
129
原创 C++基础以及stl-vector
vector 是一个动态增长的数组 使用模板来实现(模板元编程是真的黑科技)注意:正是因为vector的动态增长,在某些条件下会触发不可预计的错误。比如和动态库一起使用 并使用它作为接口 进行传入传出 一方的数据被另一方更改,动态扩容之后,当函数返回时,申请的空间需要释放,这时会违背 存储在哪边申请哪边释放的原则,导致程序崩溃 如果强行要使用这个接口类型,传入时预定大小即可 注:string也会...
2020-04-08 15:17:43
97
原创 linux下libevent环境搭建
1.使用的vmware和ubuntu进行开发vm下载地址ubuntu下载地址方法就类似重装系统,实际体验就像安装软件2.ide环境sudo add-apt-repository ppa:damien-moore/codeblocks-stablesudo apt-get updatesudo apt-get install codeblocks3.下载libeventlibev...
2020-04-08 15:17:25
218
原创 rapidJson的linux搭建
rapidJson的github地址下载好之后 执行unzip filename.zip因为rapidjson是只有头文件 使用模板来实现json 所以只需要添加头文件就行 make使用-I/路径指定头文件 解压后编写makefileTARGET = ./makeFirstSOURCE = ./tutorial.cpp#这里需要更改成你自己路径CFLAGS = -g -w -D...
2020-04-08 15:16:44
1562
原创 算法 排序算法实现c++
1.冒泡排序//比较相邻的元素。如果第一个比第二个大,就交换它们两个;//对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对,这样在最后的元素应该会是最大的数;//针对所有的元素重复以上的步骤,除了最后一个;//重复步骤1~3,直到排序完成。void PopSort(vector<int>& src) { for (int i = 0; i < src...
2020-04-08 15:15:36
75
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人