- 博客(87)
- 资源 (6)
- 收藏
- 关注
转载 内存算法-伙伴(buddy)算法
伙伴(buddy)算法,它不能根据需要从被管理内存的开头部分创建新内存。它有明确的共性,就是各个内存块可分可合,但不是任意的分与合。每个块都有个朋友,或叫“伙伴”,既可与之分开,又可与之结合。伙伴分配程序把内存块存放在比链接表更先进的数据结构中。这些结构常常是桶型、树型和堆型的组合或变种。一般来说,伙伴分配程序的工作方式是难以描述的,因为这种技术随所选数据结构的不同而各异。由于有各种各样的具有已知特性的数据结构可供使用,所以伙伴分配程序得到广泛应用。有些伙伴分配程序甚至用在源码中。伙伴分配程序编写...
2021-04-11 14:42:59
4044
1
原创 recastnavigation教程资源引导
navmesh生成步骤简析 navmesh官方API文档 部分构建navmesh参数详解 网友学习资料
2021-01-18 10:33:51
1411
原创 VS2017编译lua源码指北
文章目录为什么要生成dll?一、下载lua源码并解压二、打开Visual Studio 2017创建一个空的项目三、导入资源文件四、移除lua.c和luac.c文件(可选操作)五、添加预处理宏Q1: 这里我们为什么要添加预处理宏呢?Q2: 那么 __declspec(dllexport) 有什么作用呢?Q3: 如何查看导出的dll是不是坏的六、选择生成dll模式七、build 为什么要生成dll? https://www.lua.org/manual/5.4/readme.html 官网中有这么一段话
2020-11-12 21:55:14
942
转载 shared_ptr的坑
shared_ptr 原理及事故 new与赋值的坑 赋值(assignment)和new运算符在C++与Java(或C#)中的行为有本质的区别。在Java中,new是对象的构造,而赋值运算是引用的传递;而在C++中,赋值运算符意味着"构造",或者"值的拷贝",new运算符意味着在堆上分配内存空间,并将这块内存的管理权(责任)交给用户。C++中的不少坑,就是由new和赋值引起的。 在C++中使用new的原因除了堆上能定义体积更大的数据结构之外,就是能使用C++中的dynamic dispatch(也叫多态).
2020-09-26 17:21:45
2242
原创 mysqldump导入数据错误
导出数据: mysqldump -h ip -u username -p password database table --where='xxx=123' > xxx.sql 导出来的文件中包含了重建表格, 添加数据的代码; 需要清理到只保留插入数据的代码 导入数据: use 库名 source xxx.sql 如果导入的数据, 与原有的数据有冲突, 则需要清理原表格中的数据, 再进行导入; 注意: 导出来的文件字符集编码格式与本地编辑器可能不一样, 不能随意修改 案例: CREATE
2020-07-21 18:40:24
814
原创 c++使用proto3的map
Introduction: 自proto3开始, proto2和proto3就可以支持map. ##官方文档中有如下声明:## Added support for map fields (implemented in both proto2 and proto3). Map fields can be declared using the following syntax: >message Foo { map<string, string> values = 1; } The da
2020-07-03 17:19:44
12338
3
转载 SkipList(跳跃表)详解
Introduction: skiplist本质上也是一种查找结构,用于解决算法中的查找问题(Searching),即根据给定的key,快速查到它所在的位置(或者对应的value) 一般用于解决查找问题的数据结构分为两个大类:一个是基于各种平衡树,一个是基于哈希表。但skiplist却比较特殊,它没法归属到这两大类里面 这种数据结构是由William Pugh发明的,最早出现于他在1990年发表的...
2020-04-27 22:19:48
15009
1
原创 ssh key认证登录
Procedure: 客户端生成公私钥: ssh-keygen -t rsa -C "邮箱" 生成的ssh文件在目录: C:\Users\Administrator\.ssh 下 其中id_rsa.pub是公钥, id_rsa是私钥, known_hosts是连接过的机器信息 上传客户端公钥到服务器: 这一步去搜索吧, 没有确定答案 写入客户端公钥到服务端: cat id_rsa.p...
2020-04-24 14:48:33
487
原创 检测射线与三角形相交(3D)
Theory: 这里有张图… Implement: static bool intersectSegmentTriangle(const float* sp, const float* sq, const float* a, const float* b, const float* c, ...
2020-02-12 15:52:44
605
原创 检测射线与矩形相交
最近在看recast&detour源码的时候有遇到许多数学上的算法问题,特此记录,以便以后查看 Theory: 看 Inside-y-slab(光线在 y=ymin 和 y=ymax 的那段) 和 Inside-x-slab(光线在 x=xmin 和 x=xmax 的那段)有没有重叠。 如果有重叠部分,那么光线与包围盒相交。 如何判断有没有重叠部分? 假设已知射线的起点为Ori...
2020-02-12 15:47:46
2176
原创 A*算法核心
A*算法的核心: 有一个OpenList:起点在OpenList中,查看与起点相邻的且可到达的方格放入OpenList,把起点设置为这些方格的父亲方格 有一个CloseList:CloseList中的方格不需要关注 等式:F = G + H G为起点到当前方格的消耗值,八个方向,斜方向消耗大于正方向 H为当前方格到终点方格的估计最小消耗值,有4个方向,每一个方格的消耗相等,包括障碍物(...
2020-02-12 15:45:47
901
原创 Git难点
Premise: Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency. Git is easy to learn and has a t...
2019-10-11 17:48:15
396
原创 warning: ‘void* memset(void*, int, size_t)’ clearing an object of non-trivial type
Premise: 当更新gcc版本到8.1以上的时候, 会出现如Title一样的错误。 Resolution: - memset(&tcparams, 0, sizeof(tcparams)); +memset(static_cast<void*>(&tcparams), 0, sizeof(tcparams)); Quote: Link ...
2019-08-20 16:47:32
5399
原创 自动化文件上传,版本发布
Purposes: 现在需要将一个文件发送到多个服务器上, 作为非运维的标准程序员, 我们应该如何解决这个问题呢? 答案是脚本啊 直接一点 一、人生苦短, 我选python import paramiko, sys from collections import defaultdict port="xx" username="xxx" Machines= { '1' : ['xx.xx...
2019-05-23 19:17:48
762
转载 Linux下查询并导出Mysql日志
前两天客户打电话跟我讲,系统中有条订单数据丢失了,这让我很诧异。好好的数据怎么说丢,就丢了。此事必有蹊跷,于是今天我要一探究竟,看看数据是否录入数据库中去了。经过之前初步的排查,发现数据应该是被人为删除了。只是没有确凿的证据,下面我们将一步一步找到证据验证结果。 1.准备工作 登录Linux服务器 cd到mysql的data目录 转存日志文件 ...
2019-03-22 17:04:04
2384
原创 循环数组实现循环队列 c++
Premise: 一开始想在网上找个栗子, 随便改改就行, 但是都如出一辙, 不是本人想要的 于是自己动手写了一个. Code: const uint8_t MAXCMDLENTH = 255; class RecycleQueue { public: RecycleQueue() { container = new int[MAXCMDLENTH]; left = 0; righ...
2019-02-21 15:23:08
1818
原创 LeetCode String to Integer(atoi)
class Solution { public: int myAtoi(string str) { long i = 0; auto it = str.find_first_not_of(" "); bool native = false; if(str[it] == '-') ...
2019-02-18 17:41:40
262
原创 std::move与std::forward
Purposes: 理解引用折叠 理解完美转发 std::move()与std::forward区别 Premise: 左值、左值引用、右值、右值引用 左值: Summary: Appendix:
2019-01-22 17:21:38
1090
原创 c++的内存优化
本文目的: 1.了解什么是内存 2.内存优化有哪些方式 3.怎样做内存优化 概述: 我们常常在开发场景下提及的内存是指程序内存. 程序内存可以分为以下五种: 1、 栈区(stack):栈的空间是连续的, 先进后出能保证不会产生内存碎片, 由高地址向低地址生长, 编译器自动分配和释放, 用来存放函数的参数值,局部变量的值等。操作方式类似于数据结构中的栈。栈用于维护函数调用的上下文,离开了栈函数调...
2019-01-18 17:43:33
5844
原创 c++ 单链表模板类
/** * * File Name: LinkedList.hpp * brief:单链表 * author:Patrick * Create Time: 2019年01月16日 17:49:56 * */ #pragma once #include <iostream> #include <sstream> using namespace s...
2019-01-17 13:01:34
750
原创 如何编写CMakeLists
文章目录[Preface]一.项目根目录二.根目录的CMakeLists.txt三.子编译目录src/CMakeLists.txt附录.源代码 [Preface] 构建一个工程的时候,CMake需要知道的几个点(如果下面几件事你知道怎么做了,多大的工程就都不是问题了) A.源代码在哪里? B.头文件在哪里? C.怎么生成静态或者动态库? D.程序链接的静态库在哪里? E.如果工程的代码存放在很多地...
2019-01-16 15:52:13
3887
原创 快速排序 C++实现
代码: #include<iostream> using namespace std; void quick_sort(int arr[], int32_t left, int32_t right) { int32_t l = left; int32_t r = right; int flag = arr[l]; if(left < right)...
2019-01-09 18:40:31
6832
2
转载 Row size too large (> 8126). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC
今天在对MySQL数据库进行数据处理时,遇到一个错误: Row size too large (> 8126). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. 我处理的这张表有400列,有大量的VARCHAR和TEXT列,以前...
2018-12-19 17:47:44
20050
1
原创 static_cast、dynamic_cast、const_cast与reinterpret_cast
强制类型转换 区别于隐式的类型转换如: //数组转指针类型 int ia[10]; int* ip = ia; //指针转bool类型 char *cp = get_string(); if(cp) //类类型定义的转换 string s, t=&quot;a value&quot;; 有时我们需要显示地将对象强制转换成另外一种类型.这种方法称作强制类型转换(cast),形式如下: cast-name(expres...
2018-11-28 18:08:51
484
原创 归并排序c++实现
void merge(int arr[], int left, int mid, int right) { std::vector<int> *result = new std::vector<int>(); int l = left; int m = mid; // std::cout <<"["; // for(int i ...
2018-11-22 00:04:11
2605
原创 单链表前插法
###其实根本没有什么前插法,这是一个坑!!! 因为获取不到前一个结点的next指针,故,实现方法为:向当前结点后面插入一个新的结点,交换两个结点的值 c++代码实现如下: template &amp;amp;amp;amp;amp;lt; typename T&amp;amp;amp;amp;amp;gt; class Node{ public: void insert(Node* s, T data); ~Node(); p
2018-11-15 15:23:18
1956
原创 leetcode 3. Longest Substring Without Repeating Characters
题目地址 class Solution { public: int lengthOfLongestSubstring(string s) { std::vector&lt;char&gt; m; int len = s.length(); char tmp; int cnt=0,...
2018-11-14 18:24:58
173
原创 大数乘法 leetcode 43. Multiply Strings
class Solution { public: string multiply(string num1, string num2) { int len1 = num1.length(); int len2 = num2.length(); string result(len1+len2, '0'); ...
2018-11-14 14:32:23
215
原创 leetcode 2.Add Two Numbers
class Solution { public: ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) { ListNode* head = new ListNode(0); ListNode* p = head; int cal = 0, tmp; ...
2018-11-14 09:43:25
182
转载 使用nginx实现负载均衡与灾备系统
还记得那些美妙的夜晚吗 你洗洗打算看一个小电影就睡了,这个时候突然想起来今天晚上是服务器更新的日子,你要在凌晨时分去把最新的代码更新到服务器,以保证明天大家一觉醒来打开网站,发现昨天的 Bug 都不见了。这时候你瞬间没有了看电影的兴致了,这应该就是一个运维人员的日常了吧! 为什么要在凌晨时分去更新服务器? 做过 Web 开发的应该都明白,可能尽管你开发的系统并没有多少用户在使用,但是,你依...
2018-11-02 14:27:27
5068
转载 MySQL:Unknown storage engine 'MYSIAM',1
什么是MyISAM引擎与InnoDB引擎: InnoDB: 支持事务处理等 不加锁读取 支持外键 支持行锁 不支持FULLTEXT类型的索引 不保存表的具体行数,扫描表来计算有多少行 DELETE 表时,是一行一行的删除 InnoDB 把数据和索引存放在表空间里面 跨平台可直接拷贝使用 InnoDB中必须包含AUTO_INCREMENT类型字段的索引 表格很难被压缩 MyISAM: 不支持事务,回...
2018-10-30 18:14:41
436
转载 Linux加载动态库的几种方法
在了解/etc/ld.so.conf.d/目录下文件的作用之前,先介绍下程序运行是加载动态库的几种方法: 第一种,通过ldconfig命令 ldconfig命令的用途, 主要是在默认搜寻目录(/lib和/usr/lib) 以及动态库配置文件/etc/ld.so.conf内所列的目录下, 搜索出可共享的动态链接库(格式如lib*.so*), 进而创建出动态装入程序(ld.so)所需的连接和缓存文...
2018-10-19 14:12:29
3800
原创 机器学习入门☞Logistic回归
本文适用读者: 了解朴素贝叶斯,并且python version 为 3.x 一、利用Logistic回归进行分类的主要思想: 其根据现有数据对分类边界线建立回归公式,以此进行分类.这里的”回归”一词源于最佳拟合,表示要找到最佳拟合参数集. 二、优缺点: 优点:计算代价不高,易于理解与实现 缺点:容易欠拟合,分类精度可能不高 使用数据类型:数值型和标称型...
2018-09-12 15:33:17
292
原创 Linux实用收集
Linux系统宏 __FUNCTION__ 函数名 __TIME__ 文件运行的时间 __LINE__ 所在行数 __FILE__ 文件名 __PRETTY_FUNCTION__ 带参的函数名 linux下的环境变量设置文件: ~/.bashrc ~/profile ...
2018-08-31 10:04:29
249
原创 大数加法
#include <iostream> #include <string> using namespace std; string& big_plus(string& num1, string& num2) ...
2018-08-29 21:21:31
206
原创 机器学习入门☞朴素贝叶斯
本文适用读者: 朴素贝叶斯的优缺点及其适用性: 朴素贝叶斯的一般过程: 词表到向量的转换函数 将以下代码写入到bayes.py文件中 测试一下: 从词向量计算概率: 朴素贝叶斯分类器训练函数: 测试一下: 本文适用读者: 了解朴素贝叶斯,并且python version 为 3.x 朴素贝叶斯的优缺点及其适用性: 优点:在数据较少的情况下仍然有效,...
2018-08-23 19:23:52
369
原创 c++模板 map的value排序
如需转载请注明出处 #include &amp;amp;amp;amp;amp;lt;map&amp;amp;amp;amp;amp;gt; #include &amp;amp;amp;amp;amp;lt;iostream&amp;amp;amp;amp;amp;gt; #include &amp;amp;amp;amp;amp;lt;algorithm&amp;amp;amp;amp;amp;gt; #in
2018-07-23 18:20:29
486
原创 C++ 有哪些奇淫巧技之仿函数
一、理论: 二、仿函数应用场景: 三、仿函数的实现 一、理论: 1.C++仿函数本质上是一个类,而不是一个函数. 2.其实现方式是对class的()操作符重载,让其拥有类似于函数的功能 二、仿函数应用场景: 若需要对一个vector&amp;lt;`string&amp;gt;进行字符串长度小于10的计数,你的代码可能是这样的: 幼年期: bool cmp(co...
2018-06-20 11:05:49
699
Visual Studio 2010 SP1
2017-11-12
jQuery所有版本,亲测好用
2018-01-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅