`
moxiaomomo
  • 浏览: 44155 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论
文章列表
1. 消息序列化     将具有一定结构的数据转换成可以存取或者可以传输的形式,比如转换成字符流的形式(char *)。通过序列化后,消息可以在系统各逻辑模块或者网络中传输。 2.消息反序列化     顾名思义,反序列化与序列化的过程相反。例如,将网络中传过来的放在缓冲区的字节流数据(char *)解码成具有一定含义和结构的数据,然后便可以对接出来的数据进行处理。 3.实例  3.1) 序列化   struct User  {                 unsigned int id_;                   序列化为char *         | 4 个 byte  ...
(1)const定义常量:        const dataType constData=value;//const修饰的类型为dataType的变量value不可变. (2)指针中使用const,主要有三种方式      a.指针本身是常量,它本身不可变         char* const ptr;      b.指针所指向的内容是常量,指向的内容不可变       const char* ptr;      c.两者都不可变       const char* const ptr; (3)函数中使用const      a.传指针参数前添加const      ...
因为是第一次写T树,网上的参考源码稀缺,所以程序中不免有bug,正在修正中。 我的同步博客:http://blog.csdn.net/moxiaomomo/archive/2011/06/09/6535008.aspx view plaincopy to clipboardprint? #pragma once // // by xiaomo // 2011.06 // Ttree.h #include<iostream> using namespace std; enum ENUM { MaxSize=6 ...
比如有一个关于问答游戏的程序,程序只有在输入当前问题的答案才会继续提问下一个问题,而输入答案是由玩家来操纵的,程序要时刻监测输入情况。 这种问题在控制台很容易解决,在Qt GUI应用程序则要用到线程来解决, 如下: #include <windows.h> //......代码省略 while(!isSend)//isSend是输入答案的确认变量 { QCoreApplication::processEvents(); //支持界面刷新 Sleep(300);//当前线程睡眠一段时间(0.3s),避免一直占用CPU }//如果确认输入答案, ...
题目: 输入两个整数n 和m,从数列1,2,3.......n 中随意取几个数, 使其和等于m ,要求将其中所有的可能组合列出来. 思路:在每一次递归中,考虑是与否将当前元素添加到数列中去,知道和达到某一值为止。 代码实现: view plaincopy to clipboardprint? #include<iostream> #include<deque> using namespace std; void findNums(int n,int leftSum,deque<int>& deq) { ...
JAVA中synchronized关键字能够作为函数的修饰符,也可作为函数内的语句,也就是平时说的同步方法和同步语句块。假如再细的分类,synchronized可作用于instance变量、object reference(对象引用)、static函数和class literals(类名称字面常量)身上。 在进一步阐述之前,我们需要明确几点: A.无论synchronized关键字加在方法上还是对象上,他取得的锁都是对象,而不是把一段代码或函数当作锁――而且同步方法很可能还会被其他线程的对象访问。 B.每个对象只有一个锁(lock)和之相关联。 C.实现同步是要很大的系统开销作为代价的, ...
一般面试的时候,如果要考查你的C++基本功,关于字符串的实现的内容出现的频率比较高。 下面是个人实现的三个简单的字符串相关函数,以后会陆续补充。 //(1)查找字符串中的子串 int mystrstr(const char* string,const char* substring) { if(string==NULL||substring==NULL)return -1; int s1=strlen(string); int s2=strlen(substring); if(s1<s2)return-1; const char* temp=sub ...
interface与abstract的区别 1.相同点: A. 两者都是抽象类,都不能实例化。 B. interface实现类及abstrct class的子类都必须要实现已经声明的抽象方法。 2. 不同点: A. interface需要实现,要用implements,而abstract class需要继承,要用extends。 ...
为了学习linux下编程,几个月前安装了双系统win7+ubuntu。 结果有一天ubuntu突然登录不进去了...悲剧,一直弄不好。 结果一气之下在win7里用第三方软件把ubuntu的文件系统所在磁盘给格式化。 没想到,这个冲动的行为是要付出代价的:电脑重启后连win7也登陆不了... 请高手来帮忙,他们也表示无能为力。因为他们发现我的电脑磁盘不是一般的凌乱,主引导区已经没有,用网上的那些解决方法已经不管用了。 沮丧之余便想将所有磁盘分区格式化,重新分区。这是多么大的打击,多么严重的创伤啊! 可有什么办法呢? 我用系统光盘启动winPE后,想把一些重要文件拷贝出来后,对磁盘进行血洗。 ...
面试的时候被问及了String类的实现,结果没写好... 就当是重新复习一下吧。 下面的程序并没有把String类的所有成员方法实现,只写了大部分重要的成员函数。 #include<iostream> #include<iomanip> using namespace std; class String{ friend ostream& operator<< (ostream&,String&);//重载<<运算符 friend istream& operator>> ...
刚学了flash和as3,写了个仿雷电的小游戏,算是半成品吧。 虽然简单了点,个人感觉还过得去。[img]/images/smiles/icon_razz.gif&quot; alt=&quot;[/img] 正在想怎么去实现跟踪弹。等到完善之后再发个源码上来,让大家指点一下。
一直以来对堆与栈的理解是有点模糊。 起初只是知道栈空间是连续的;因为这种特性,使栈的操作与使用比较简单,基本操作就是指针上下移动就行了。而堆的空间分布可以是不连续的,因为这个原因会带来操作上的一些繁琐,比如进行搜索时会出现不必要的步骤,但在另一方面来说提高了灵活性。 但是对于程序来说,数据应该在什么情况下分配到栈空间,什么情况下分配到堆空间呢? 应该可以这样理解: 1.没有引用类型的值类型会在栈空间里分配,比如struct,局部变量的int等。 2.至于包含了引用类型的:引用类型可以分成两部分,一部分是它的"引用",分配在栈空间里;一部分是实际内容,分配在堆空间里。   ...
之前面试腾讯时,遇到一道面试题。 题目大概是假设有海量的QQ会员参加了活动A,也有海量的QQ会员参加了活动B,如何快速找出既参加了活动A,又参加了活动B的QQ会员? 当时回答时答得乱七八糟的,哎... 我暂时想到的方法是先将两个队列变为有序队列,然后分别从两个队列的头部开始迭代: 如果两个队列的当前元素大小相等,则两个队列的遍历下标分别前移1;否则将指向较小元素的下标前移1,另一个下标不变。 这样遍历一直到其中一个队列已经完全遍历为止。这时便能找出所有相同的元素。 算法一直是自己短板。暂时想不出更好的办法,要是不用排序就好了。  
题目: 一间囚房里关押着两个犯人。每天监狱都会为这间囚房提供一罐汤,让这两个犯人自己来分。起初,这两个人经常会发生争执,因为他们总是有人认为对方的汤比自己的多。后来他们找到了一个两全其美的办法:一个人分汤,让另一个人先选。于是争端就这么解决了。 可是,现在这间囚房里又加进来一个新犯人,现在是三个人来分汤。必须寻找一个新的方法来维持他们之间的和平,该怎么办呢? 当初接触到这道题的时候,思维开始有点乱。但是后来慢慢想清楚了。 其实这种问题可以扩展到大规模的问题,加入有四个囚犯呢?五个呢? 如果是这样的话,就可以想到一种很经典的解法,那就是相似递归。 我们可以想到,最后分汤的情景只剩下两个人,那样 ...
这道题实在是很经典的面试题。 题目主要是要求尽可能的减少时间复杂度。 个人也写了一下,方便以后回头温习。 int getMaxVal(int a[],int n) { int max=a[0]; //用来记录已经计算过的子数组的最大和 int result=a[0]; //返回最终的子数组最大和 for(int i=1;i<n;++i) { if(max>0) { max+=a[i]; } else max=a[i]; if(max>result) {result=max ...
Global site tag (gtag.js) - Google Analytics