IT界牛魔王

Stay hungry ,Stay foolish!

C C++ 全套视频课程收录

小白可以短时间很快入门的《从小白入门C语言视频课程》 http://edu.csdn.net/course/detail/5895 然后C语言中为核心知识点,附上指《C语言指针精讲视频课程》 http://edu.csdn.net/course/detail/5896 指针是...

2017-10-27 14:58:48

阅读数:5826

评论数:0

新手如何学好C++?

最近,很多学员都给我发邮件问我应该如何学习C++,如何学好C++? 那么作为一个从C语言小白摸爬滚打、入坑无数到成长为如今的高级C++游戏开发工程师,高级C++服务端工程师,项目经理,我想跟大家分享下我自己的学习心得与体会! Linus曾说过:“C++是一门很恐怖的语言,而比它更恐怖的是...

2017-10-10 09:32:28

阅读数:5398

评论数:2

一个NB的随机算法

在游戏中,大家会经常使用随机算法,但是如何选择一个好的伪随机? 这里提供一个思路: 这里提供了一个数组,有101个数据 ,分别代表%0 -  100%, base数组中每个元素值 都是该概率的基础值,比如对于10%的概率,base[10]它的基础值为1475 (其实这里都是乘以100000了,...

2019-01-17 16:03:50

阅读数:35

评论数:0

多线程下值的自增方案:_InterlockedIncrement ,atomic_long ,mutex

最近学习多线程下的整数自增,很好理解: 场景:  一个点击需求,用10个线程模拟10个用户同时点击,每个线程点击10 0000次, 那么实际上一共是点击100 0000 次。 下面分别使用无锁(结果肯定错误), mutex,_InterlockedIncrement, atomic 测试: ...

2019-01-10 14:46:42

阅读数:15

评论数:0

Redis学习手册

为什么自己当初要选择Redis作为数据存储解决方案中的一员呢?现在能想到的原因主要有三。其一,Redis不仅性能高效,而且完全免费。其二,是基于C/C++开发的服务器,这里应该有一定的感情因素吧。最后就是上手容易,操作简单。记得在刚刚接触Redis的时候,由于当时项目的工期相当紧张,留给我...

2019-01-07 15:47:08

阅读数:38

评论数:0

我读过的最好的epoll讲解--转自”知乎“

   首先我们来定义流的概念,一个流可以是文件,socket,pipe等等可以进行I/O操作的内核对象。       不管是文件,还是套接字,还是管道,我们都可以把他们看作流。       之后我们来讨论I/O的操作,通过read,我们可以从流中读入数据;通过write,我们可以往流写入数...

2018-12-25 19:46:51

阅读数:47

评论数:0

Linux 下强大的Vim插件 vimplus

最近在Linux下开发,发现有一款极其强大的插件,附上github介绍地址: https://github.com/chxuan/vimplus 里面安装方法都有,最后成功的界面:

2018-12-20 19:17:32

阅读数:42

评论数:0

C++ 静态成员对象的定义陷阱

我们先来看一段代码,展示一个奇怪的地方:   #include <iostream> using namespace std; class A { public: A() { cout << &a...

2018-12-17 16:06:24

阅读数:22

评论数:0

C++实现反射(利用字符串创建对象)

JAVA,C# 中都具有反射机制,但是C++没有语法支持,但是可以自己实现,来通过字符串产生对象,其实仅仅是个语法糖而已 实现思路:  ClassFactory类的一个map 存储  key 相应的类名 和  value 创建该类对象的函数地址 ,  ClassFactory类提供Create...

2018-12-15 19:03:25

阅读数:34

评论数:0

一个简单高精度定时器设计

下面设计了一个轻量的高精度定时器类,主要使用timeGetTime()函数:   DWORD timeGetTime(VOID); 返回系统时间,以毫秒为单位。系统时间是从系统启动到调用函数时所经过的毫秒数。注意,这个值是32位的,会在0到2^32之间循环,约49.71天。   代码设计非...

2018-12-14 18:39:39

阅读数:62

评论数:0

对于vector中高效删除中间元素的技巧

众所周知,vector是连续存储空间,只提供高效的尾部删除方法pop_back() ,在中间删除的效率很低,那么如果大家想快速删除中间元素该如何实现?   话不多说,看代码: //移除vector元素,最后一个填充。 template<typename T&a...

2018-12-13 19:07:42

阅读数:47

评论数:0

sizeof(*this) 在虚函数中的使用误区

不要以为基类使用了虚函数 GetSize()   ,sizeof(*this)并不能正常返回派生类的大小, 并且使用了virtual 后,有虚函数表,导致容量+4!!! #include <iostream> #pragma pack(1) ...

2018-12-03 21:56:10

阅读数:30

评论数:0

设计一个40位的数据类型,用于标记多种状态

我们知道,unsigned  char 是8位,可以存储数据的值是 0-255    , 一共256个值。 下面可以自己设计一种数据结构,用于存储40位的数据类型,当然这里的40 (8 *5 )你可以随意扩展,比如 256位 = 8 *32 话不多说,看下面的示例代码: #include ...

2018-11-27 15:39:28

阅读数:55

评论数:0

根据 关键字 搜索 sqlserver存储过程

SQL SERVER  非常好用的根据某个关键字查存储过程: select *  from sys.all_sql_modules   where definition like '%wxface%' 或者  SELECT DISTINCT o.name AS Object...

2018-11-13 18:52:41

阅读数:28

评论数:0

一种数据映射方式,初级加密

一种数据映射方式,自动生成对应表,可以用于初级加密。 #include <stdio.h> #include <algorithm> #include <ctime&amp...

2018-11-03 16:44:42

阅读数:55

评论数:0

一种加密,解密的思路

加密的一种思路: 1.  客户端有个初始key,这个key先加密(异或)4个字节内容,生成4个字节的密文 2.  根据4个字节的密文,算法产生新key2, 使用key2解密下一段 4个字节的内容, 以此类推   对应的解密: 1. 服务器本身知道初始key  2. 服务器先根据4个字节...

2018-11-03 16:15:39

阅读数:60

评论数:0

位运算的妙用技巧

C/C++语言提供的位运算符有:   运算符 含义 功能 & 按位与 两个二进制位都为1,则该位的结果值为1;否则为0。 | 按位或 两个二进制位中只要有一个为1,该位的结果值为1。 ∧ 按位异或 两个二进制位...

2018-11-03 14:38:40

阅读数:27

评论数:0

进程虚拟地址为什么是4G大小?

1、创建一个进程时,操作系统会为该进程分配一个 4GB 大小的虚拟 进程地址空间。 之所以是 4GB ,是因为在 32 位的操作系统中,一个指针长度是 4 字节  (32位), 2的32次 方个地址寻址能力是从 0x00000000~0xFFFFFFFF 即为 4GB 大小的容量。     4...

2018-10-16 21:55:39

阅读数:84

评论数:0

掌握C语言链表-黄强-专题视频课程

链表是一种使用极其广泛的数据结构,它也可以用来作为实现栈、队列等数据结构的基础,链表没有像数组需要预先知道数据大小的缺点,可充分利用计算机内存,实现动态灵活的内存管理。除非需要频繁的通过下标来随机访问各个数据,否则数组都可以用链表代替。链表作为C语言数据结构的难点,更是面试中必考的知识点。...

2018-09-28 14:32:49

阅读数:33

评论数:0

axftmp1.h头文件

axftmp1.h是收集类模板(MFC模板类)的头文件,倘若你在程序中用到了CArray, CObList等数据结构时,那么就得加载该文件。通常在MFC编程中,为了使用集合、数组类,要在StdAfx.h中加入下面语句:#include <afxtempl.h&...

2018-09-10 17:33:59

阅读数:31

评论数:0

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