- 博客(11)
- 资源 (7)
- 收藏
- 关注
原创 数据库连接池
为什要使用连接池?可能不清楚的人会这样问,原因很简单,就是想增强并发处理能力,也可以更加灵活地实现数据分布式存储。 大体思路实现如下:class IDbConnetion{public:IDbConnetion(){};virtual ~IDbConnetion(){ };virtual bool Connect(const string& ip, ui
2015-08-18 22:05:30 359
原创 服务器分布式锁
多进程处理数据的时候难免会出现数据不一致问题,例如有一个进程正在处理数据,还没有来得及写入,另一个进程已经在读,导致拿到的数据不是最新的。应该要保证第一个进程更新完后再读取才不会出错,要解决这个问题就要进行类似一个原子操作了,给执行的代码加一个分布式锁。 下面用ssdb实现一把分布式锁:bool SsdbLock(const string& key, uint32_t last
2015-08-18 20:55:53 412
原创 排序算法,快速排序,希尔排序,冒泡排序
排序算法模板,包括快速排序,希尔排序,冒泡排序快速排序:以数据为基准的左右二分排序希尔排序:缩小增量的排序需要使用可以直接下载文件使用/* *file : sort.h *author : oliver ou */#ifndef _AGILE_SORT_H_#define _AGILE_SORT_H_#include #include /
2015-05-21 20:24:30 440
原创 小根堆,大根堆,堆排序
小根堆,大根堆,堆排序下面用c++模板实现小根堆,大根堆,堆排序功能, 可以适用不同类型的数据,可以直接使用//file:heap.h#ifndef _AGILE_HEAP_H_#define _AGILE_HEAP_H_#include #include typedef bool(*EqualFunc)(void*, void*);typede
2015-05-20 21:19:50 1242
原创 code for 使用n个1,2,3进行加减运算,最后结果还是1,2,3
code for 使用n个1,2,3进行加减运算,最后结果还是1,2,3#include #include #include #include #include #include #include #include #include using namespace std;enum DATA_TYPE{DATA_TYPE_NUM
2015-05-19 19:40:55 488
原创 使用n个1,2,3进行加减运算,最后结果还是1,2,3
使用n个1,2,3进行加减运算,最后结果还是1,2,3。要求每次数据的运算规则都是随机的,结果值也是随机的。struct Data{int num; //所选的数字int type; //数据类型,包括数字(0),加号(1)和减号(2)int sum; //结果值};stack want;一.随机一个数n和结果值n Data t; t.num =
2015-05-19 18:23:29 452
原创 c++智能指针实现
c++智能指针实现,使用模板实现智能指针,帮助你管理new出来的内存。file:share_ptr.h#include //引用计数类templatestruct ref_ptr {ref_ptr(T* obj) :_obj(obj), _refCount(1){};~ref_ptr(){delete _obj;};//对象数据T*
2015-05-19 18:03:24 337
原创 A星算法理解
A星算法是一种探测性算法,实现需要关注的重点:二维地图数组,关闭列表,开放列表(小根堆),每个点的父节点。 二维地图数组用来存储地图上是否可通过的标记信息,假设现在要从地图的起始点A移动到目的点B,如何寻找到最短的路径呢?1. 把地图上的A点放入关闭列表中,然后将A点周围的可走点放入一个以小堆为结构的开放列表,并把它们的父节点指向A点。2. 计算周围可走点到A点的距
2015-03-27 18:07:16 1134
原创 透明的String类
透明的String类是一个能自己定义长度的类,类中重载了很多操作符,还增加了其它的字符格式化功能,操作起来和c++内库的string基本一样。这个String类提供了拷贝栈中的数据,没有什么其它的引用,在多线程处理消息队列的时安全性好。 templateclass String{public: String(); String(const String
2015-03-25 18:08:16 319
原创 数据实时排名
排行榜是很多软件的功能需求,比如我们常玩的各类游戏,视频直播,微博等等都有排行榜。现在的排行榜实现方式大都有这两种:1.定时排名,2实时排名,下面就让我来介绍我对实时排行榜的理解。实时排行有两个问题: 1. 如果数据量很大怎么做到实时排名? 2. 如果要实时调整排名数据怎么做到快速调整? 对于数据量小的程序可以在单个机器上完成就ok了,其实主
2015-03-25 16:19:33 4479
原创 游戏战斗数据包
虽然现在很多游戏都用上手动战斗了,但还是想分享一下之前做过的回合制游戏的战斗数据写法。不同游戏战斗有不同的写法,数据上的需求也会有些差异,下面这个回合制战斗数据包当是借鉴,它满足很多的战斗需求比如:多场战斗连在一起打,合击,群攻,消除buffer,反击等等
2014-12-30 15:38:05 554
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人