自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 堆排序

预处理器是在编译之前执行的一段程序,可以部分地改变我们所写的程序。 预处理器可以确保头文件多次包含但仍能安全工作。 头文件保护符 #define:指令把一个名字设定为预处理器变量。 #ifdef:当且仅当变量已定义时为真 #ifndef:当且仅当变量未定义时为真 一旦检查结...

2020-06-20 17:02:55 37 0

原创 二叉堆的构建、插入、删除等操作

共享内存就是两个或者多个进程共享的一块区域。只要一个进程改变了这块地址中的内容的时候,其他进程便会察觉到改变的内容。 (1)创建共享内存 int shmget(key_t key, int size, int shmflg) (2)将共享内存映射到自己的内存空间 void* shma...

2020-06-20 15:51:59 41 0

原创 选择排序

选择排序是一种灵巧的算法,但其速度不是很快。具体规则如下: 1:从未排序元素中找到最小(大)元素,存放到排序序列的起始位置。(我们以最小值举例) 2:再从剩余的未排序元素中继续寻找最小元素,然后放到已排序序列的末尾(通过交换元素值实现,如果最小元素比第一个未排序元素小,那就交换他们的值) 3:重复...

2020-04-24 11:30:10 70 0

原创 C 和 C++ 关于 const 的比较

C 语言中 const 修饰符: const 修饰的变量不是真正意义上的常量,而是一个常变量 无法直接修改,但是可以间接修改变量的值。会分配内存空间,因此可以通过指向其地址空间的指针去修改其内容。 const int b = 10; int * p = (int *)&b; *...

2020-04-18 17:58:36 42 0

原创 LeetCode-155 最小栈

文章目录题目思路辅助栈和数据栈同步操作辅助栈只存储最小值 题目 设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。 push(x) —— 将元素 x 推入栈中。 pop() —— 删除栈顶的元素。 top() —— 获取栈顶元素。 getMin() —— ...

2020-04-07 20:30:52 49 0

原创 垃圾回收 GC

文章目录垃圾回收(Garbage Collection,缩写为GC)收集器实现引用计数收集器跟踪收集器。回收算法1:标记-清除2:标记-压缩3:复制4:增量回收器5:分代 垃圾回收(Garbage Collection,缩写为GC) 自动的存储器管理机制。当某个程序占用的一部分内存空间不再被这个程...

2020-04-07 16:49:23 50 0

原创 redis 配置文件

redis.conf配置重要字段详解 1、redis的日志级别: redis的日志级别分为debug、verbose、notice、waining。在redis.conf中通过loglevel来配置redis的日志等级。只记录level级别大于配置文件中配置的等级。 #define REDI...

2019-11-23 14:31:58 49 0

原创 游戏设计 MMORPG类九宫格视野

文章目录地图分块坐标点定位玩家所在地图块视野块玩家视野玩家九宫格中的视野数据如何取舍 在游戏中地图是以 X 轴, Z 轴为水平面的(游戏中都以cm为单位)。假设地图大小是256m * 256m,下面都是按照这个大小进行讨论。 地图上每个位置都会有对应的actor对象(玩家或者npc等),如...

2019-11-05 14:51:42 1189 1

原创 struct 结构体 所占字节数的计算

定义结构体类型,只能说明该类型的组成情况,并没有分配内存空间。只有当定义属于结构体类型的变量时,系统才会分配空间给该变量。

2019-10-17 16:10:18 219 0

原创 c++ 指针常量、常量指针、函数指针等详解

指针 (1)指针本身就是个对象,允许对指针赋值和拷贝。生命周期内它可以先后指向几个不同的对象。 (2)指针无需在定义时赋初值。和其他内置类型一样,在块作用域内定义的指针如果没有被初始化,也将拥有一个不确定的值。 (3)指针存放某个对象的地址。可以使用取地址符 & 来获取地址 (4)如果指针...

2019-10-06 19:01:04 78 0

原创 strcpy和memcpy的区别

(1)复制内容不同 strcpy 只能复制字符串,除了复制字符串内容外,还会复制字符串的结束符 memcpy 可以复制任意内容,例如字符数组、整型、结构体、类等。 (2)复制的方法不同 strcpy 不需要指定长度,遇到被复制字符串的串结束符 '\0’才结束,所以容易溢出 memcpy ...

2019-08-10 11:03:22 51 0

原创 c++ 预处理

#预处理:编译之前的处理。不做语法检查,宏定义不分配内存 宏 宏替换的本质------文本替换 (1)宏名一般大写,宏名和参数的空格间不能有空格,宏定义末尾不加分号。如: #define BASE 4 (2)宏只做替换,不做语法检查,不做计算,不做表达式求解 #define FUNC(x) ...

2019-05-06 11:45:35 52 0

原创 Linux sort用法

首先编写个测试文件,内容如下: danni@vm-xxx-18:/home/danni/study/shell $ cat a.txt 23 12 23 12 33 44 11 22 33 44 cat a.txt | sort | uniq -c u...

2019-01-14 20:19:49 163 0

原创 tmux的使用

(1)进入上帝模式: ctrl + b (2)调换窗口:首先进入上帝模式,然后 ctrl + o (3)调换内置布局:首先进入上帝模式,然后按 空格键 (4)横向分割窗口:首先进入上帝模式,然后 " (5)纵向分割窗口:首先进入上帝...

2019-01-12 14:48:14 658 0

原创 -1 对256求模的值为255?

把-1赋值给一个8位的uinsigned char,结果是255? #include <iostream> #include <stdio.h> ...

2019-01-09 14:17:15 632 1

原创 shell 把以空格分隔的变量 分割后的每个字段赋值给变量

继承 继承中有两个概念。基类和派生类。直接或者间接继承基类的类称为派生类。一般我们在基类中定义一些共同拥有的成员,在派生类中定义各自特有的成员。 对于某些函数,我们希望派生类对于各自的类具有不同的实现方式。在这种情况下,我们可以把这些函数声明成虚函数。 如果派生类没有覆盖它继承的虚函数,则该...

2018-11-24 18:00:18 14560 0

原创 expect 基础语法学习 及 简单使用

基本语法: send:接收一个字符串参数,将参数发送到进程 expect:和send相反,根据进程输出的反馈,再发送(send)对应的交互命令 spawn:启动新的进程,spawn后的send和expect命令都是和使用spawn打开的进程进行交互 interact:允许用户交互。退出自动化,进入...

2018-11-24 11:08:05 140 0

原创 linux find之exec用法

find命令之exec -exec参数后面跟的是command命令,它是以 ; 为结束标志,由于各个系统中分号会有不同的意义,因此在前面加上反斜杠。 {} 代表前面find查找出来的文件名 [danni@vm-xxx-18 study]$ find ./ -type f -exec ls -l {...

2018-10-12 16:45:14 4214 0

原创 linux 环境变量详解

全局环境变量和局部环境变量 全局环境变量:对于shell会话和它生成的所有子shell都是可见的。 局部环境变量:只在创建他们的shell中可见。 全局和局部变量是否可以用我们编程语言中的父类和子类来帮助了解? 查看全局变量的值: (1) printenv :查看所有全局变量的值,printen...

2018-10-12 11:09:59 309 0

原创 linux 当修改服务器上的时间,导致文件时间和当前时间不符合的时候,把文件时间恢复到当前服务器时间

递归修改当前目录下所有文件/文件夹:find ./ * -exec touch {} \;

2018-10-11 17:04:23 1274 0

原创 linux 查找被删除但是未被释放空间的文件 并释放资源

查看已删除但是未释放空间的文件:lsof | grep deleted 删除已删除但是未释放空间的文件:lsof | grep deleted | awk '{print $2}' | xargs -I {} kill -9 {}

2018-10-10 17:08:39 3088 0

原创 linux xargs命令用法

xargs命令:读取输入数据重新格式化后输出,将标准输入数据转换成命令行参数输出。 定义一个测试文件: [danni@vm-xxx-18 study]$ cat test.txt a b c d e f g h i j k l m n o p q r s t u v w x y z xar...

2018-10-10 11:56:41 195 0

原创 Shell 脚本 基础知识点、入门必备

(1)命名:Shell脚本以 .sh为后缀 (2)

2018-09-30 15:00:04 227 0

原创 linux下一些常用的svn命令

查看当前修改的文件:svn status -q 筛选出有冲突的文件:svn st -q | grep ^C 查看未加入到版本里面的文件:svn status | grep -e ^? 根据提交的时间段和提交的用户筛选svn的提交记录:https://blog.csdn.net/qq_3674827...

2018-09-30 14:48:56 166 0

原创 linux下操作svn,实现根据时间段查看某个指定用户提交的记录

svn log -v -r {2018-9-10}:{2018-9-25} | sed -n '/danni/,/--$/ p'

2018-09-25 17:29:31 4461 0

原创 shell脚本 数组的使用

一: 数组的定义 shell 只支持一维数组(不支持多维数组) shell 数组初始化的时候不需要定义数组的大小,数组元素的下标由0开始,shell数组用括号来表示,元素之间用空格分隔开 可以使用@或*获取数组中的所有元素 #数组 myarray=(123 &am...

2018-09-20 11:46:31 2095 0

原创 shell 脚本 关于字符串的那些事~ 单引号、双引号、不使用引号等等

一:字符串的定义 shell脚本中字符串可以使用双引号、单引号、不使用引号来定义 比如:在不使用引号的情况下字符串中间不可以有空格 #!/bin/bash doublestr="hello you"; singlestr=&qu...

2018-09-19 19:58:59 4288 2

原创 使gdb支持string、vector、map等STL类型数据的查看(linux)

前提条件 (1)需要安装python [danni@vm-xxx-18 develop]$ python --version Python 2.6.6 (2)需要有gcc [danni@vm-xxx-18 develop]$ gcc --version gcc (GCC) 4.4.7 20...

2018-08-30 20:26:56 2402 1

原创 lua 连接mysql数据库实现增删改查操作(linux下示例)

(1)linux下连接数据库: mysql -u root -p,-u 指定登录用户,-p 指定密码。 [danni@vm-bestgame-18 develop]$ mysql -u root -p Enter password: Welcome to the MySQL monitor. ...

2018-08-24 15:08:37 1916 0

原创 awk的使用和举例

编写个文本文件作为示例模板: [danni@vm-xxx study]$ cat AwkDemo.txt This is a sed text. Hei Hei. Are you laugh? No, you can not do that. Are you sad? Oh, It is ...

2018-08-23 10:31:12 376 0

原创 sed的用法与实例介绍

我们先编写一个小文档,用于后期举例使用。 [danni@vm-xxx study]$ cat SedDemo.txt This is a sed text. I am beautyful. You are not beautyful. He is also not beautiful. Hei...

2018-08-22 21:38:49 662 0

原创 c++ 类成员变量初始化顺序

我们通常说的Java是可以跨平台运行的,那么他是如何做到跨平台运行的呢。靠的就是JVM虚拟机。通常我们把自己编写好的Java代码编译生成class字节码文件,然后Java虚拟机加载这些字节码文件,解析这些字节码指令。Java虚拟机有自己完善的硬件架构,如处理器栈、堆栈、寄存器等,还有相应的指令系统...

2018-05-31 16:41:55 1276 0

原创 c++ 如何限制一个类对象实例只建立在堆上、或只建立在栈上

#include<iostream> #include <cstring> using namespace std; //new运算符: //(1)执行operator new()函数,在堆空间中搜索何时的内存并进行分配。 //(2)调用构...

2018-05-29 16:25:40 253 0

原创 c++ 虚函数多态、纯虚函数、虚函数表指针、虚基类表指针详解

静态多态和动态多态–虚函数、纯虚函数 静态多态:程序在编译阶段就可以确定调用哪个函数。这种情况叫做静态多态。比如重载 动态多态:在运行期间才可以确定最终调用的函数。需要通过虚函数+封装+继承实现。 虚函数 1、虚函数都必须有定义 2、虚函数一般用在继承中。多个子类继承同一基类,若在某种行...

2018-05-24 14:22:58 1222 0

原创 c++ 顶层const指针和底层const指针的解读技巧

画一条穿过*位置的垂直直线 如果const出现在线的左边,说明指针指向的数据为常量 如果const出现在线的右边,说明指针本身是常量 如果const在线的两边都出现,说明两者都是常量。...

2018-05-23 09:41:17 242 0

原创 KCP原理及源码解析

什么是KCP?为什么要使用KCP? KCP是一个速可靠协议。它主要的设计目的是为了解决在网络拥堵的情况下tcp协议网络速度慢的问题,增大网络传输速率,但相当于TCP而言,会相应的牺牲一部分带宽。 kcp没有规定下层传输协议,一般用udp作为下层传输协议。kcp层协议的数据包在udp数据报文的基...

2018-05-03 11:04:45 30056 13

原创 常用的vi和vim操作

visual模式下: gg:命令将光标移动到文档开头 G:命令将光标移动到文档末尾 w:移动到下一个单词 b:移动至单词的开头 dd:删除一行(光标所在行) 23dd:删除光标坐在行一下的23行命令行模式下。首先,输入:进入命令行模式(1)23 d:删除第23行 (2)23,32 d...

2018-04-20 20:36:31 134 0

原创 Lua基础 +Lua源码详解

创建对象:创建对象是为类的实例分配内存的过程。每个类都有属于自己的内存并共享公共数据。 访问属性:我们可以使用点号(.)来访问类的属性 访问成员函数:我们可以使用冒号 : 来访问类的成员函数--基类 Shape = {area = 0}--基础类方法 function Shape:new(s,...

2018-04-16 23:26:16 128 0

原创 Lua生产者与消费者问题

(1)Lua 协同程序(coroutine)与线程比较类似:拥有独立的堆栈,独立的局部变量,独立的指令指针,同时又与其它协同程序共享全局变量和其它大部分东西。 (2)在任一指定时刻只有一个协同程序在运行,并且这个正在运行的协同程序只有在明确的被主动要求挂起的时候才会被挂起。其它协同程序才有机会执...

2018-04-16 22:26:58 356 0

原创 C++ 数组、数组指针、指针数组、动态数组等详解

先了解一下数组的结构,然后接着了解动态数组的结构。 数组数组: (1)数组大小固定。 (2)数组是一种复合类型 (3)存放类型相同的对象的容器,需要通过所在位置访问这些对象。 (4)数组的元素应该为对象,因此不存在引用的数组 (5)维度:数组中元素的个数,必须大于0,编译的时候维度应该...

2018-04-15 17:15:07 2388 0

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