C++
文章平均质量分 77
__孤剑__独舞
服务器开发工程师
展开
-
士兵排队问题
一 士兵有多种移动方式通过适当的移动顺序和移动路线可以使得同一时刻不会有两名士兵站在同一点二 题目要求最佳移动方式(即求移动的最少步数)题目要求转化为求士兵站立的“最终位置”,即如何取“最终位置”使得士兵移动的步数最少(最优)Y轴方向上的考虑设目标坐标为M,即n个士兵最终需要移动到的Y轴的坐标值为Mn个士兵的Y轴坐标分别为:Y0,Y1,Y2 …… …… Yn-1则最原创 2012-03-17 19:48:11 · 2794 阅读 · 0 评论 -
如何判断一个点在矩形内
最近在做游戏服务器中技能模块,往往要扫描一个区域,判断npc是不是在我这个区域内,在的话就发伤害。 就需要实现一下,对于一个点是否在矩形内的判断。 只需要判断该点是否在上下两条边和左右两条边之间就行,判断一个点是否在两条线段之间夹着,就转化成,判断一个点是否在某条线段的一边上,就可以利用叉乘的方向性,来判断夹角是否超过了180度 如下图:原创 2016-01-14 16:09:08 · 39510 阅读 · 11 评论 -
C++利用智能指针shared_ptr实现对象池
C++中用new来分配对象,还要显式的调用delete来析构对象,很容易造成内存泄露。所以在研究我们游戏服务器的代码的时候发现,我们将new函数封装,在对象池上,利用shared_ptr的特性来自动释放对象,同时实现了一种简单的GC回收对象的机制。看完之后,觉得搞的不错,这样很容易管理项目中new。所以把相关代码分享一下。首先说下基本思路,对象池,其实就是个vector,里面放的是pair,b原创 2016-01-28 18:26:13 · 1580 阅读 · 0 评论 -
C++模板类声明与定义
模板不是类型,不能讲模板类的声明,和模板成员函数的实现,分别定义在.h 文件和.cpp文件当中, 这个是模板比较特殊的地方,就是声明和实现都要放在一起,放在.h文件当中去。 另外要注意的是,模板非类型参数,如template class A; 不同的size,实例化的时候,会生成不同的实现,如 A a1; A a2;原创 2016-01-05 00:32:33 · 809 阅读 · 0 评论 -
c++五种内存分配、堆与栈区别
在C++中,内存分成5个区,他们分别是堆、栈、自由存储区、全局/静态存储区和常量存储区。 栈,就是那些由编译器在需要的时候分配,在不需要的时候自动清楚的变量的存储区。里面的变量通常是局部变量、函数参数等。 堆,就是那些由new分配的内存块,他们的释放编译器不去管,由我们的应用程序去控制,一般一个new就要对应一个delete。如果程序员没有释放掉,那么在程序转载 2015-10-12 10:14:30 · 7930 阅读 · 0 评论 -
单例设计模式与静态类,静态方法的联系
单例设计模式与静态类,静态方法的联系原创 2014-08-11 10:49:54 · 2027 阅读 · 0 评论 -
三谈GetHashCode函数到Dictionary(或hash_set ,hash_map)
三谈GetHashCode函数到Dictionary(或hash_set ,hash_map)原创 2014-07-16 10:45:25 · 2068 阅读 · 0 评论 -
zoj1093题解 Monkey and Banana
Monkey and BananaTime Limit: 2 Seconds Memory Limit: 65536 KB A group of researchers are designing an experiment to test the IQ of a monkey. They will hang a banana at the roof of a bui原创 2014-01-05 03:29:44 · 1918 阅读 · 0 评论 -
Word Break
Word Break Total Accepted: 4925 Total Submissions: 26611 My Submissions Given a string s and a dictionary of words dict, determine if s can be segmented into a space-separated sequence of one o原创 2013-12-31 22:48:49 · 839 阅读 · 0 评论 -
轻工代码
#include #include const int dir[4][2]={-1,0,1,0,0,-1,0,1};bool visited[401];char map[25][25];int count;//int temp;int newcount;int DFS(int i,int j,char a[][25],int M,int N){原创 2012-04-24 14:50:30 · 2183 阅读 · 0 评论 -
Linux文件系统
Linux文件系统第一部分暂时先放着,等候再添加吧!网上看过一篇文章写的不算太靠谱正文大小原创 2016-09-05 07:52:15 · 436 阅读 · 0 评论