- 博客(87)
- 资源 (6)
- 收藏
- 关注
转载 内存算法-伙伴(buddy)算法
伙伴(buddy)算法,它不能根据需要从被管理内存的开头部分创建新内存。它有明确的共性,就是各个内存块可分可合,但不是任意的分与合。每个块都有个朋友,或叫“伙伴”,既可与之分开,又可与之结合。伙伴分配程序把内存块存放在比链接表更先进的数据结构中。这些结构常常是桶型、树型和堆型的组合或变种。一般来说,伙伴分配程序的工作方式是难以描述的,因为这种技术随所选数据结构的不同而各异。由于有各种各样的具有已知特性的数据结构可供使用,所以伙伴分配程序得到广泛应用。有些伙伴分配程序甚至用在源码中。伙伴分配程序编写...
2021-04-11 14:42:59
3793
1
原创 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
805
转载 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
2133
原创 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
697
原创 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
11886
3
转载 SkipList(跳跃表)详解
Introduction:skiplist本质上也是一种查找结构,用于解决算法中的查找问题(Searching),即根据给定的key,快速查到它所在的位置(或者对应的value)一般用于解决查找问题的数据结构分为两个大类:一个是基于各种平衡树,一个是基于哈希表。但skiplist却比较特殊,它没法归属到这两大类里面这种数据结构是由William Pugh发明的,最早出现于他在1990年发表的...
2020-04-27 22:19:48
14504
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
421
原创 检测射线与三角形相交(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
522
原创 检测射线与矩形相交
最近在看recast&detour源码的时候有遇到许多数学上的算法问题,特此记录,以便以后查看Theory:看 Inside-y-slab(光线在 y=ymin 和 y=ymax 的那段) 和Inside-x-slab(光线在 x=xmin 和 x=xmax 的那段)有没有重叠。如果有重叠部分,那么光线与包围盒相交。如何判断有没有重叠部分?假设已知射线的起点为Ori...
2020-02-12 15:47:46
2022
原创 A*算法核心
A*算法的核心:有一个OpenList:起点在OpenList中,查看与起点相邻的且可到达的方格放入OpenList,把起点设置为这些方格的父亲方格有一个CloseList:CloseList中的方格不需要关注等式:F = G + HG为起点到当前方格的消耗值,八个方向,斜方向消耗大于正方向H为当前方格到终点方格的估计最小消耗值,有4个方向,每一个方格的消耗相等,包括障碍物(...
2020-02-12 15:45:47
693
原创 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
347
原创 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
5151
原创 自动化文件上传,版本发布
Purposes:现在需要将一个文件发送到多个服务器上, 作为非运维的标准程序员, 我们应该如何解决这个问题呢?答案是脚本啊直接一点一、人生苦短, 我选pythonimport paramiko, sys from collections import defaultdictport="xx"username="xxx"Machines= { '1' : ['xx.xx...
2019-05-23 19:17:48
679
转载 Linux下查询并导出Mysql日志
前两天客户打电话跟我讲,系统中有条订单数据丢失了,这让我很诧异。好好的数据怎么说丢,就丢了。此事必有蹊跷,于是今天我要一探究竟,看看数据是否录入数据库中去了。经过之前初步的排查,发现数据应该是被人为删除了。只是没有确凿的证据,下面我们将一步一步找到证据验证结果。1.准备工作登录Linux服务器cd到mysql的data目录转存日志文件...
2019-03-22 17:04:04
2298
原创 循环数组实现循环队列 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
1741
原创 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
205
原创 std::move与std::forward
Purposes:理解引用折叠理解完美转发std::move()与std::forward区别Premise:左值、左值引用、右值、右值引用左值:Summary:Appendix:
2019-01-22 17:21:38
1008
原创 c++的内存优化
本文目的:1.了解什么是内存2.内存优化有哪些方式3.怎样做内存优化概述:我们常常在开发场景下提及的内存是指程序内存.程序内存可以分为以下五种:1、 栈区(stack):栈的空间是连续的, 先进后出能保证不会产生内存碎片, 由高地址向低地址生长, 编译器自动分配和释放, 用来存放函数的参数值,局部变量的值等。操作方式类似于数据结构中的栈。栈用于维护函数调用的上下文,离开了栈函数调...
2019-01-18 17:43:33
5693
原创 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
661
原创 如何编写CMakeLists
文章目录[Preface]一.项目根目录二.根目录的CMakeLists.txt三.子编译目录src/CMakeLists.txt附录.源代码[Preface]构建一个工程的时候,CMake需要知道的几个点(如果下面几件事你知道怎么做了,多大的工程就都不是问题了)A.源代码在哪里?B.头文件在哪里?C.怎么生成静态或者动态库?D.程序链接的静态库在哪里?E.如果工程的代码存放在很多地...
2019-01-16 15:52:13
3767
原创 快速排序 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
6743
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
19973
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
406
原创 归并排序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
2552
原创 单链表前插法
###其实根本没有什么前插法,这是一个坑!!!因为获取不到前一个结点的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
1890
原创 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
137
原创 大数乘法 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
160
原创 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
147
转载 使用nginx实现负载均衡与灾备系统
还记得那些美妙的夜晚吗你洗洗打算看一个小电影就睡了,这个时候突然想起来今天晚上是服务器更新的日子,你要在凌晨时分去把最新的代码更新到服务器,以保证明天大家一觉醒来打开网站,发现昨天的 Bug 都不见了。这时候你瞬间没有了看电影的兴致了,这应该就是一个运维人员的日常了吧!为什么要在凌晨时分去更新服务器?做过 Web 开发的应该都明白,可能尽管你开发的系统并没有多少用户在使用,但是,你依...
2018-11-02 14:27:27
4925
转载 MySQL:Unknown storage engine 'MYSIAM',1
什么是MyISAM引擎与InnoDB引擎:InnoDB:支持事务处理等不加锁读取支持外键支持行锁不支持FULLTEXT类型的索引不保存表的具体行数,扫描表来计算有多少行DELETE 表时,是一行一行的删除InnoDB 把数据和索引存放在表空间里面跨平台可直接拷贝使用InnoDB中必须包含AUTO_INCREMENT类型字段的索引表格很难被压缩MyISAM:不支持事务,回...
2018-10-30 18:14:41
388
转载 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
3557
原创 机器学习入门☞Logistic回归
本文适用读者:了解朴素贝叶斯,并且python version 为 3.x一、利用Logistic回归进行分类的主要思想: 其根据现有数据对分类边界线建立回归公式,以此进行分类.这里的”回归”一词源于最佳拟合,表示要找到最佳拟合参数集.二、优缺点: 优点:计算代价不高,易于理解与实现 缺点:容易欠拟合,分类精度可能不高 使用数据类型:数值型和标称型...
2018-09-12 15:33:17
238
原创 Linux实用收集
Linux系统宏 __FUNCTION__ 函数名 __TIME__ 文件运行的时间 __LINE__ 所在行数 __FILE__ 文件名 __PRETTY_FUNCTION__ 带参的函数名linux下的环境变量设置文件:~/.bashrc ~/profile ...
2018-08-31 10:04:29
206
原创 大数加法
#include <iostream>#include <string>using namespace std;string& big_plus(string& num1, string& num2) ...
2018-08-29 21:21:31
152
原创 机器学习入门☞朴素贝叶斯
本文适用读者:朴素贝叶斯的优缺点及其适用性:朴素贝叶斯的一般过程:词表到向量的转换函数将以下代码写入到bayes.py文件中测试一下:从词向量计算概率:朴素贝叶斯分类器训练函数:测试一下:本文适用读者:了解朴素贝叶斯,并且python version 为 3.x朴素贝叶斯的优缺点及其适用性: 优点:在数据较少的情况下仍然有效,...
2018-08-23 19:23:52
306
原创 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
434
原创 C++ 有哪些奇淫巧技之仿函数
一、理论:二、仿函数应用场景:三、仿函数的实现一、理论:1.C++仿函数本质上是一个类,而不是一个函数. 2.其实现方式是对class的()操作符重载,让其拥有类似于函数的功能二、仿函数应用场景:若需要对一个vector&amp;lt;`string&amp;gt;进行字符串长度小于10的计数,你的代码可能是这样的: 幼年期:bool cmp(co...
2018-06-20 11:05:49
625
jQuery所有版本,亲测好用
2018-01-28
Visual Studio 2010 SP1
2017-11-12
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人