自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 资源 (2)
  • 问答 (1)
  • 收藏
  • 关注

原创 es/elasticsearch 相关概念

在学习es的过程中,总是能看到将es与关系型数据库进行比较,但实际上有些小小的问题Relational DB ⇒ Databases ⇒ Tables ⇒ Rows ⇒ ColumnsElasticsearch ⇒ Indices ⇒ Types ⇒ Documents ⇒Fields因为在后面的版本中,type就不推荐使用了,也就是说这个概念其实可以忽略。可以看下官方的解释https://www.elastic.co/cn/blog/index-vs-typeFields ne.

2020-12-08 16:40:10 176

原创 图数据库 DGraph

一、dgraph介绍graph主要有三个query:查询mutation:在dgraph中,增、删、改都被成为mutationalter:修改shema(就是predicate的type和index)dgraph zero:用于协调集群中各个机器的负载dgraph alpha:用于存储数据dgraph ratel:用于操作的数据库的ui界面,可在浏览器访问8000端口获得界面一个集群中要有一个zero,集群中的每个节点都要运行alpha在dgraph中,有边和..

2020-12-03 19:36:36 4801

原创 kbengine属性同步分析

实体的属性是定义在def文件中属性会有几个不同的flag来表示属性是如何更新的entitydef/common.hALL_CLIENT 属性能被周围的客户端获得,包括自身。相当于同时设置了OWN_CLIENT和OTHER_CLIENT标志。 ALL_CLIENTS 同ALL_CLIENT BASE 只能在Base上使用 BASE_AND_CLIENT 属性在base和客户端都可见,相当于同时设置了OWN_CLIENT和BASE标志。 CELL_PRIVATE entity的.

2020-08-21 17:53:55 1082

原创 kbengine移动同步分析

在kbengine.cs中,可以看到存在这样一个函数可以看到会调用baseapp::onUpdateDataFromClient()从baseapp:: onUpdateDataFromClient()到cellapp:: onUpdateDataFromClient()1502行实际上调用了Entity:: onUpdateDataFromClient()下面还有一长段检查就没截图了。走到这发现好像就是更新了位置,AOI没有处理啊。实际上这里隐蔽在于要到posi..

2020-08-21 16:22:55 1170

原创 kbengine unity3D 登录分析(初次登录流转过程)

上文说到流程到了Loginapp::login(),那么登录操作到了这里接下来会怎么走呢?往下看Loginapp.cpp996~1003:请求交给脚本操作1096~1100 会将用户名和密码交到Dbmgr上进行查询找到Dbmgr::onAccountLogin()105行将任务交给了数据库线程池。那么数据库线程池是怎么回事呢?以下虚线部分都是线程池的内容,如有了解可以跳过------------------------------------...

2020-08-07 16:59:46 456

原创 kbengine unity3D 登录分析(服务端协议构建)

从loginapp开始,loginapp的构造函数只有一句话pMainMessageHandlers是MessageHandlers的静态成员变量,那么赋值号右边的LoginappInterface::messageHandlers是什么呢?找到LoginappInterfaceloginapp_interface.cppLoginappInterface是命名空间,那么messageHandlers就是其中对应的某个变量了,进入头文件查看loginapp_inter..

2020-08-06 18:00:12 318

原创 kbengine unity3D 登录分析(服务端)

类的作用:EndPoint:端点,主要是抽象socket所作用的端点,比如说一个连接socket,客户端是一个EndPoint,服务端也是一个EndPoinChannel:抽象socket连接,客户端和服务端之间有n条连接socket,那就有n个channel对象,channel中也有endpoint成员,这个endpoint是客户端Bundle:用于发送消息packet:接收的数据封装Kbengine的每个app都是一个进程,所以每个app都有一个main函数。从login..

2020-08-06 17:21:22 482

原创 kbengine unity3D 登录分析(客户端)

客户端:Kbengine针对Unity3d专门制作了插件https://github.com/kbengine/kbengine_unity3d_plugins插件在安装之后,会在messages.cs自动生成配置静态代码。静态代码是根据messages_fixed_defaults.xml形成的函数id与函数名对应,比如1963行的505对应Client_onLoginBaseappFailed,到xml文件中寻找UI.cs可以看到登录是调用了login()...

2020-08-06 17:00:01 354

原创 this指针 虚函数

#include <iostream>using namespace std;class A{ int i;public: void Hello() { cout << "hello" << endl; } virtual void vHello() { cout&l...

2020-02-11 19:39:13 967

原创 工厂方法模式和抽象工厂模式

工厂方法和抽象工厂的主要角色有抽象工厂、具体工厂、抽象产品、具体工厂。抽象工厂和抽象产品都是抽象类,其中主要的是抽象工厂中有一个抽象产品类型的抽象方法,这个抽象方法会在具体工厂中得到实现,返回具体产品类(return new concreteProduct)在工厂方法模式中,如果要生产新的产品,需要添加新的具体产品类和具体工厂类,但不用修改原有的代码。符合开闭原则抽象工厂模式和工...

2019-12-15 19:16:47 264

原创 最大子数组和 可以删除一个元素的最大子数组和 动态规划

问题一:最大子数组和给定一个数组 array[1, 4, -5, 9, 8, 3, -6],在这个数字中有多个子数组,子数组和最大的应该是:[9, 8, 3],输出20,再比如数组为[1, -2, 3, 10, -4, 7, 2, -5],和最大的子数组为[3, 10, -4, 7, 2],输出18。注意子数组和子序列的区别。字数组是连续的,子序列不要求连续。设定dp数组,dp[i...

2019-11-21 17:30:46 868

原创 链表问题 反转链表 k节点反转链表

链表数据结构 struct node { string value; node *next = NULL; };单链表的反转用指针pre、cur、next分别指向前一个节点、当前节点、后一个节点,我们的目标是将cur节点的next指针指向pre,这样便反转了,当然在反转之前需要记住原先cur节点的next指针所指向的节点。nod...

2019-11-07 16:24:24 258

转载 设计模式的依赖、关联、聚合、组合、继承、实现六种关系

https://blog.csdn.net/kiki44944/article/details/81153804

2019-11-01 20:07:33 256

原创 c++ 释放内存 野指针

在释放内存之时,不仅仅是将该块内存进行释放,还要将指向该块内存的指针置为NULL。如果不置为NULL,下次继续使用该指针时会出现问题。具体看示例。在下面的示例中,如果没有处理野指针的那句话,最后链表输出的结果会被输入的多一位,原因就在于尾插节点之后虽然释放了最后一个无效节点的内存,但却没有将无效节点的前一个节点的next指针重置为NULL。总之一句话,free或者delete只是将指针指...

2019-10-31 23:20:41 1450

原创 调整数组使差最小 (01背包问题变形)(一个数组分成同大小部分或一个数组分成不同大小两部分)

最近看到两道背包问题变形的题目,形式很相似,做个总结。01背包问题:在n个物体中向容量为V的背包中放,第i个物体的体积为C[i],其价值为W[i],如何选取使得背包中的物体总价值最大。(注意i是从1开始)问题1:将数组分为两部分,不要求两部分元素个数一致,使得两部分的和最接近,返回两部分的差值。例如:int[] array={1,0,1,7,2,4},分为两部分为{1,0,1,2...

2019-10-23 19:32:56 1512 2

原创 C++ map 以value排序,相等以key排序

c++的sort函数只能用于顺序容器,比如vector等。对于关联容器,map、set是以key为有序的,unordered_map等是无序的。有些情况下我们需要用map的value值来排序,比如说按数值个数排序c++的sort是有三个参数void sort (RandomAccessIterator first, RandomAccessIterator last, b...

2019-09-26 21:09:44 910

原创 图解ORBSLAM2流程

这篇博文主要是梳理ORBSLAM2的流程,对于细节暂时不会很详细的描述(之后的博文会深究细节),且本博文暂时只描述ORBSLAM2中的Monocular(单目)情况。在ORBSLAM2中,主要的三个线程是Tracking、LocalMapping、LoopClosing。三个线程的创建都是在System.cpp中,也就是在System类中的构造函数中创建了这三个线程。以mono_tum.c...

2019-09-24 15:07:07 4466 1

原创 LeetCode DFS Course Schedule 课程表 Find Eventual Safe States找到最终的安全状态

题目链接:1、Course Schedulehttps://leetcode.com/problems/course-schedule/2、Find Eventual Safe States https://leetcode.com/problems/find-eventual-safe-states/这两题有相似性很高,区别在于第一题是判断这个图中有没有环,第二题是找出连接图...

2019-09-19 20:59:59 140

原创 KNN算法和kd树详解(例子+图示)

一、KNN算法KNN(K-NearestNeighbor)算法既可以用于分类,也可用于回归。这里介绍他的分类用法。训练集:一堆拥有标签的m维数据,可以表示为: 其中,是标签,即所属类别。目标:一个测试数据x,预测其所属类别。算法:计算测试点x与训练集中每一个数据的“距离” 将所求的距离进行升序排序,选择前K个 在上一步中所得到...

2019-03-15 11:19:44 21991 22

原创 ThinkPad E450 uefi模式下移动硬盘安装Ubuntu14.04(本机硬盘是win10)

thinkpad E450希捷500G移动硬盘写有unbuntu映像的u盘启动盘 本次ubuntu安装的主要问题有:1、thinkpad E450 进入bios并设置bios,使能够从u盘启动2、启动模式要设置成uefi,而不是leagcy3、移动硬盘存在“分配到/的分区/dev/sdc1开始于3584字节,使用磁盘的最小对齐,这可能造成非常差的性能..“问题 ...

2018-11-13 17:48:15 1756

原创 thinkpadE450 进入bios并设置bios为uefi模式U盘启动(也可以是legacy)

uefi模式启动,硬盘一般是gptlegacy模式启动,硬盘一般是mbr 进入bios之前需要先关闭win10电源快速启动https://jingyan.baidu.com/article/9faa72318667aa473c28cbe6.html 然后设置bios 将电源的快速启动关闭之后,重启电脑,按f12,记住,不用加上fn,只要按f12即可就会出现如下界...

2018-11-06 17:46:30 40889 3

NFA确定化和DFA最小化.docx

编译原理中的NFA确定化和DFA最小化可运行代码以及思路解释

2019-11-07

编译原理属性文法的实现实验报告有代码

在编译原理中属性文法,二进制小数转成十进制,展现转换的过程

2018-06-06

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除