
C/C++
文章平均质量分 73
wudaijun
新博客地址:wudaijun.com,QQ:812915118,欢迎交流。
展开
-
多线程非阻塞模式实例
多线程非阻塞模式到现在算是告一段落吧 虽然还有一些小的bug需要修正 总结一下 准备向后面进发 实现功能: 本程序主要实现远程计算的功能 通过非阻塞套接字和多线程的结合 让通信变得高效 服务器通过维护一个客户端链表来实现对多个客户响应 客户端自身验证表达式的正确性 当输入Byebye时 服务器回复OK 此时客户端断开连接退出 主要模块和线程管原创 2012-11-01 10:30:38 · 5916 阅读 · 1 评论 -
智能指针 auto_ptr
智能指针是对普通原指针的一种封装类,使得对原指针的管理变得更加简便和智能化。 总的来说它们主要为了解决这样一些问题: 1.显式分配资源后的释放问题,比如内存泄漏(new后忘了delete)。 2.资源的共享问题,当多个实例共享某个显式申请的资源(如内存)时,由谁来管理和释放该资源。 3.资源使原创 2013-07-10 08:40:09 · 1711 阅读 · 0 评论 -
关于字符编码以及%ls wsprintf setlocale 资料整理
这两天研究数据库,老是遇到宽字符的问题: 问题一:为什么在用wsprintf输出Unicode编码的字符串时要先调用setlocale(LC_ALL, "chs");而对于printf输出多字节编码的字符串则有无setlocale均可正常输出。 如: void main(){ wchar_t* wstr = L"中文"; setlo原创 2013-04-08 16:19:54 · 3451 阅读 · 0 评论 -
局域网聊天系统__3.服务器框架实现
CUserInfo类 主要包含一些必要数据以及Serialize支持class CUserInfo : public CObject{public: DECLARE_SERIAL(CUserInfo); CUserInfo(); virtual ~CUserInfo(); CUserInfo(const CUserInfo& userInfo);原创 2012-12-20 22:16:34 · 1415 阅读 · 0 评论 -
IO___C基础部分(EOF, 回车换行,getchar(), getch())
EOF EOF(End Of File)是文件读取操作所返回的一个状态,它并不是从文件中读取到的值,而是文件读取函数在读取到文件末尾或者不能再往下读取时的一个返回值。该返回值一般是-1,这也是大多数系统中为EOF宏定义的值。正因为这个特殊的返回值,使得譬如getch(),getchar(),等函数的返回值是int而不是char,这一点后面会讲到。EOF一般可以通过返回值,eof()或者原创 2012-12-27 21:24:45 · 3339 阅读 · 3 评论 -
C泛型__数据结构
这里通过用C实现一个通用类型的栈结构来加深对数据结构和C指针的一些理解 同时也为一些C通用类型库函数(如排序)的实现提供一些思路先写一个int 版本的栈用于比较:typedef struct{ int* elem; int logicalLen; int allocLen;}stack;void StackNew(stack* s){ s原创 2012-11-01 09:57:14 · 1612 阅读 · 0 评论 -
扫雷___核心鼠标逻辑
鼠标逻辑是扫雷最核心的部分。我们需要根据当先前鼠标位置,所在方块的状态和历史状态,游戏状态等等来综合考虑界面的体现 所需要的状态量: 雷状态:正常STATE_NORMAL,空STATE_EMPTY,未知STATE_DECKY,未知按下状态STATE_DECKY_DOWN 红旗STATE_FLAG 游戏状态:等待GS_WAIT 运行GS_RUN 失败GS_原创 2012-11-01 10:05:45 · 2151 阅读 · 0 评论 -
结构体与位域的对齐
C结构体和C++中的类极为相似 它也可以有构造和析构函数以及其他成员函数 成员函数也通过一个隐含的this指针来操作类成员 它们之间唯一的区别就是默认的成员访问权限 类是私有 结构体是公有 以下对结构体的对齐操作等 大多数也对C++类适用 结构体的对齐方式; 1.对于结构体中的成员 每一个成员的地址必须是该成员类型大小的整数倍 如原创 2012-11-18 18:20:18 · 9760 阅读 · 1 评论 -
C泛型___函数
对于c++等高级语言来说,语言本身提供了泛型模板,可以由编译器生成各种版本的完成相同功能的函数。而对于c来说,我们怎么来完成这一切呢,我们可以充分利用指针来实现示例1 交换两个元素void swap(void* vp1, void* vp2, int size){ char* cpTemp = new char[size]; memcpy(cpT原创 2012-11-01 09:56:05 · 1764 阅读 · 0 评论 -
回溯法___批处理调度
核心代码:private: int taskNum; //任务个数 int* pFirst; //各任务在第一台机器上的处理时间 int* pSecond;原创 2012-11-01 09:41:37 · 1240 阅读 · 0 评论 -
C系基本类型数值转换
1.相同类型有符号和无符号数之间转换(intunsiged int): 这种转换只涉及位的解释 也就是说位模式是不变的 只是最高位是否解释为符号位的问题 eg: int i = -1; unsigned int ui = i; 此时ui=42949672952.短类型赋给长类型(eg: short->int) 将short的所有位放在int的低原创 2012-11-01 09:58:30 · 1289 阅读 · 0 评论 -
实现pop push min操作时间复杂度为O(1)的栈结构
要求:实现一个栈结构 使得pop push min(获得栈中最小元素)操作的时间复杂度为O(1)要实现min函数复杂度为O(1) 肯定不能遍历弹入的数据也不能简单维护一个小顶堆(小顶堆的维护需要lg(n)时间)这个时候可以利用栈先进先出的特性:考虑2 4 3 1 四个依次入栈的数字。在我们维护的min数据中,我们不需要保存1 2 3 4, 事实上,由于栈只能按照1 3 4 2的顺序原创 2012-12-27 00:13:44 · 8792 阅读 · 4 评论