摘要: ObjectPool.h#include class ObjectPool{private: ObjectPool(unsigned int step, unsigned int size); ~ObjectPool();public: static ObjectPool& get... 阅读全文
posted @ 2015-10-15 21:01 liusijian 阅读(219) 评论(0) 推荐(0) 编辑
摘要: #pragma once#include "KRYObject.h"template class KRYFunction{};templateclass KRYFunction {private: class FunctionBase { public: virtua... 阅读全文
posted @ 2015-10-15 20:57 liusijian 阅读(165) 评论(0) 推荐(0) 编辑
摘要: KRYObject.h#pragma onceclass KRYObject{ template friend class KRYRefPtr; template friend class KRYWeakPtr;private: struct KRYRefCount ... 阅读全文
posted @ 2015-10-15 20:34 liusijian 阅读(159) 评论(0) 推荐(0) 编辑
摘要: #pragma onceclass KRYPtrCount{public: KRYPtrCount() :shared_count(1), weak_count(0){} void addShared(){ shared_count += 1; } void addWeak(){ ... 阅读全文
posted @ 2015-10-15 20:15 liusijian 阅读(170) 评论(0) 推荐(0) 编辑
摘要: #include #include void FileToArray(const char *srcfile, const char *dstfile){ FILE *file = fopen(srcfile, "rb"); if (file) { FILE *sav... 阅读全文
posted @ 2015-07-19 14:32 liusijian 阅读(249) 评论(0) 推荐(0) 编辑
摘要: 1 void main() 2 { 3 Path *path; 4 time_t t1,t2; 5 int i, times = 10000; 6 7 t1 = clock(); 8 for(i = 0; i visit;//std::priority_queue, InfoCmp> visit;我用了我自己的PriorityQueue,如果用std的priority_queue只要1375ms。那你问我为什么不用std的priority_queue,那是我在做跨平台是运行错误了。不得已自己写的。你可以自己测试,注意我自己的PriorityQueu... 阅读全文
posted @ 2013-11-23 02:19 liusijian 阅读(776) 评论(0) 推荐(0) 编辑
摘要: 如果你只需要知道是否存在一条路径就选BStarBstar能快速找到一条路径,只是99%不是最短路径。如果你要找一条最短路径 可以用AStarBFS算法,在地图比较简单AStar效率高,如果地图复杂还是选BFS吧(AStar要为自己的聪明付出代价)。如果你要寻很多条路但他们的起点或终点一样就选Dijkstra SPFA算法,因为他们一次寻路就把所有到相同目标的路径都算出来了,Dijkstra算法稳定,SPFA算法不稳定,但我测试基本都是SPFA要快那么一点。至于Floyd算法基本不实用,虽然一次计算把地图任意点对路径都算出来了,但效率实在太低。算法复杂度是格子数的3次方。 阅读全文
posted @ 2013-11-23 01:50 liusijian 阅读(657) 评论(0) 推荐(0) 编辑
摘要: 1 #ifndef __FLOYD__H 2 #define __FLOYD__H 3 4 #include "AIDefine.h" 5 6 class Floyd 7 { 8 private: 9 #define MAXNUM 0x7FFFFFFF 10 public: 11 Floyd() 12 { 13 m_nodeArr = NULL; 14 m_path = NULL; 15 m_able = false; 16 } 17 ~Floyd() 18 { 19 ... 阅读全文
posted @ 2013-11-23 01:39 liusijian 阅读(391) 评论(0) 推荐(0) 编辑
摘要: 1 #ifndef __SPFA__H 2 #define __SPFA__H 3 4 #include 5 #include "AIDefine.h" 6 7 class SPFA 8 { 9 public: 10 SPFA() 11 { 12 m_nodeArr = NULL; 13 m_able = false; 14 } 15 ~SPFA() 16 { 17 if(NULL != m_nodeArr) 18 { 19 delete[]... 阅读全文
posted @ 2013-11-23 01:38 liusijian 阅读(295) 评论(0) 推荐(0) 编辑
摘要: 1 #ifndef __DIJKSTRA__H 2 #define __DIJKSTRA__H 3 4 #include "AIDefine.h" 5 #include 6 7 class Dijkstra 8 { 9 private: 10 #define MAXNUM 0x7FFFFFFF 11 public: 12 Dijkstra() 13 { 14 m_nodeArr = NULL; 15 m_able = false; 16 } 17 ~Dijkstra() 18 { 19 ... 阅读全文
posted @ 2013-11-23 01:37 liusijian 阅读(690) 评论(0) 推荐(0) 编辑