- 博客(56)
- 收藏
- 关注
原创 vs2012 正则
#pragma warning(disable : 4996)// std_tr1__regex__regex_replace.cpp // compile with: /EHsc #include #include #include #include#define FIND_CHAR "a"#define REPLACE_CHAR "A"#define F
2015-06-15 12:51:06
393
原创 简单的事件机制
#include#include#define ObjDef(class_name) \s_ClassName = #class_name; \v_id = this;class CObject;class CEvent;class CSendEvent;class CEventsManage;class CObject{public:
2014-11-16 00:19:16
409
原创 静态数码管
#include #include typedef unsigned char u8; //静态数码管高电平sbit a = P0^0;sbit b = P0^1;sbit c = P0^2;sbit d = P0^3;sbit e = P0^4;sbit f = P0^5;sbit g = P0^6;sbit dp = P0^7;void Slee
2014-04-01 15:00:59
470
原创 纯C读取24位图并且绘画在桌面
#include #include typedef struct{BYTE b;BYTE g;BYTE r;}RGB;int main( void ){BITMAPFILEHEADER fileHeader;BITMAPINFOHEADER infoHeader;FILE* pfin = fopen("5.bmp","rb");if(!pfin)
2014-01-10 18:23:52
590
转载 win32载入一张位图
case WM_PAINT:{HDC hdc;PAINTSTRUCT ps;HDC hdcMem;HBITMAP hbmp; //一张位图的句柄BITMAP bmp;hdc = BeginPaint(hwnd,&ps);//为指定句柄hwnd窗口进行绘画准备工作hdcMem = CreateCompatibleDC(hdc);//创建一个与指定
2014-01-09 13:18:59
475
原创 行列式....
D = a 0 0 0 = abcd (特殊行列式 三角行列式) 4 b 0 0 -1 8 c 0 5 -7 6 d某元素的余子式 = 这个元素去掉这个元素行列的所有元素所得到剩余下来的行列式某元素的代数余子式 = (-1)^(这个元素的行+这个元素的列) *这个元素的余子式行列式代表某个数通过元素间的特殊的计算所得的值行列式
2013-12-29 16:24:53
573
原创 控制台版贪吃蛇
#include#include#include#include#include//地图大小#define MAP_SIZE 20//全局屏幕输出缓存区句柄HANDLE g_hOutput;//地图属性struct MapNode_s{enum NodeType_e{NOTHING, SNAKE , WALL, FOOD};NodeType_e
2013-10-13 02:07:15
526
原创 堆排序
#include #include #include templatevoid Sort(A * array, int max_node,bool re){if(re){SortBig2Small(array , max_node);}else{SortSmall2Big(array , max_node);}}templ
2013-10-09 13:57:01
422
转载 红黑树删除
相对于红黑树插入操作,删除操作复杂的多。第一:先看最简单情况,即删除红色节点。删除红色节点,不影响红黑树平衡性质,如图: 只需要删除红色节点,不需要进行调整,因为不影响红黑树的性质。 黑色节点没有增多也没有减少。注意:以下几种单支情况在平衡的红黑树中不可能出现。因为上述的情况,红黑树处于不平衡状态。(破坏到null,黑色节点数目相同)所以,平衡状态下红黑树要么单支黑-
2013-10-03 21:38:36
593
转载 红黑树数据结构剖析
FlorianWelcome to:http://www.cnblogs.com/fanzhidongyzby红黑树数据结构剖析红黑树数据结构剖析 红黑树是计算机科学内比较常用的一种数据结构,它使得对数据的搜索,插入和删除操作都能保持在O(lgn)的时间复杂度。然而,相比于一般的数据结构,红黑树的实现的难度有所增加。网络上关于红黑树的实现资料
2013-09-28 19:01:28
673
原创 C语言 超级跳转
#include #include jmp_buf a;int staten;int n = 0;void F(){ staten = setjmp(a); printf("%d, %d\n",++n,staten); getchar(); return;}int main(int argc, char *argv[]){
2013-09-16 16:04:35
497
原创 LUA 04
#include #include #include using namespace std;extern "C" {#include "lua.h" #include "lualib.h" #include "lauxlib.h"#pragma comment(lib,"lua5.1.lib")}/* Lua解释器指针 */lua_State* L;
2013-09-12 16:22:00
519
原创 LUA 03
#include #include #include using namespace std;extern "C" {#include "lua.h" #include "lualib.h" #include "lauxlib.h"#pragma comment(lib,"lua5.1.lib")}/* Lua解释器指针 */lua_State* L;
2013-09-12 15:31:23
482
原创 LUA 02
#include #include #include using namespace std;extern "C" {#include "lua.h" #include "lualib.h" #include "lauxlib.h"#pragma comment(lib,"lua5.1.lib")}/* Lua解释器指针 */lua_State* L;
2013-09-12 13:23:30
588
原创 基本的模板元编程
#include template struct fl{enum { value = N * fl::value };};template struct fl{enum{value = 1};};int main(int argc, char *argv[]){printf("%d\n",fl::value);getc
2013-09-11 19:53:51
527
原创 LUA Metamethods
Set = {}Set.mt = {}function Set.new (table)local retable = {}setmetatable(retable, Set.mt)for i, v in ipairs(table) do retable[i] = v endreturn retableendfunction Set.mt.__add(
2013-09-10 18:49:48
472
原创 LUA简单调用
extern "C" {#include "lua.h" #include "lualib.h" #include "lauxlib.h"#pragma comment(lib,"lua5.1.lib")}/* Lua解释器指针 */lua_State* L;int main ( int argc, char *argv[] ){ /* 初始化Lua */
2013-09-09 23:25:34
414
原创 简单窗口
#include#include//消息处理函数LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrecInstance,PSTR szCmdLine,int iCmdShow){ //int cxScreen,cyScr
2013-09-07 18:15:17
489
原创 C++ 简单的观察者模式
#include using namespace std;#define MAX_NUM 5class CObserve{public:CObserve(){}virtual void DoSomeThing()=0;/*templatevoid RegisterFunction(){}*/};class CObserveObje
2013-09-03 17:07:11
543
原创 MYSQL预处理(C语言)
#include #include #include #include #pragma comment(lib,"libmysql")#pragma comment(lib,"wsock32")int main(int argc, char *argv[]){MYSQL * conn = mysql_init(0);//连接MYSQL服务器if(!mysql
2013-09-02 20:20:27
709
原创 MYSQL 变量类型对应到C语言中的变量类型
buffer_type值SQL类型C类型MYSQL_TYPE_TINYTINYINTcharMYSQL_TYPE_SHORTSMALLINTshort intMYSQL_TYPE_LONGINTint
2013-09-02 20:04:11
1036
原创 C语言(函数传递可变长度的参数列表)va_arg
#include #include int jf(int num,...){ int num1,num2; va_list argptr; va_start( argptr, num ); num1 = va_arg( argptr, int ); --num; for( ; num > 0; num-- )
2013-09-02 17:10:28
969
原创 C++偏特化
#include using namespace std;templateclass Function{public:typedef TT (*PFUN)(P param,P2 param2);Function(PFUN fun):m_fun(fun),m_p(0),m_p2(0){}Function(PFUN fun,P p1,P2 p2):m_fun(f
2013-09-01 17:25:53
550
原创 C++ 成员函数指针
#include using namespace std;class P{public:P(int _m):m(_m){}virtual void print(){printf("P:%d\n",m);}int m; };class PP:public P{public: PP(int _m):P(_m) {
2013-08-30 22:25:30
409
原创 IOCP 配合 AcceptEx
#include "SOCKET.h"#include DWORD WINAPI ThreadProc(LPVOID pvParam);#define PORT 8080#define LISTEN_QUEUE 200// AcceptEx 和 GetAcceptExSockaddrs 的函数指针,用于调用这两个扩展函数LPFN_ACCEPTEX
2013-08-25 22:25:52
889
原创 C mysql
#include #include #include #include // 进行网络编程需要winsock2.h#include #include #include #pragma comment(lib, "libmysql.lib")#pragma comment(lib ,"ws2_32")using namespace std;MYSQL mys
2013-08-07 10:55:08
466
转载 mysql存储过程详解
mysql存储过程详解1. 存储过程简介 我们常用的操作数据库语言SQL语句在执行的时候需要要先编译,然后执行,而存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给定参数(如果该存储过程带有参数)来调用执行它。一个存储过程是一个可编程的函数,它在数据库中创建并保存
2013-08-07 09:28:39
1513
原创 UDP广播
//客户端#include #include #pragma comment(lib ,"ws2_32")int main(){WSADATA wsaData;WSAStartup(MAKEWORD(2,2),&wsaData);SOCKET socketfd;SOCKADDR_IN addr;addr.sin_family=AF_INET;addr.s
2013-08-06 20:06:25
489
原创 坑爹的底层
///////////////////////////////////////////////////////////////////////////////////////////boost::asio::ip::tcp::acceptor类 负责 接收数据 发送数据 接收客户端连接..boost::asio::ip::tcp::endpoint类 记录地址.////////////
2013-08-01 16:08:52
495
转载 boost socket编程 例子
服务端程序代码: 1 // BoostServer.cpp : 定义控制台应用程序的入口点。 2 // 3 4 #include "stdafx.h" 5 #include 6 #include 7 8 using namespace boost::asio; 9 #define BLOCK_SIZE 64*102410 11
2013-07-23 10:37:59
718
转载 二分查找算法
二分查找算法 二分查找算法是在有序数组中用到的较为频繁的一种算法,在未接触二分查找算法时,最通用的一种做法是,对数组进行遍历,跟每个元素进行比较,其时间为O(n).但二分查找算法则更优,因为其查找时间为O(lgn),譬如数组{1, 2, 3, 4, 5, 6, 7, 8, 9},查找元素6,用二分查找的算法执行的话,其顺序为: 1.第一步查找中间元素,即5,由于5
2013-07-20 18:59:11
513
原创 二分排序
#include void f(int *a,int len){if(lenreturn ;int i;int t=0,w=len-1;int c[len];for(i=1;i{if(a[i]>a[0]){c[w]=a[i];w--;}else{c[t]=a[i];t++; } }c[w]=a[0];for(i
2013-07-20 17:24:43
412
原创 二叉树查找树...
#include #include #include #include using namespace std;//R 大 L 小 struct Node{Node* L;Node* R;Node* root;int data;Node(int d=0):data(d),L(),R(){}};class bst{ int n;public
2013-07-20 17:24:25
393
转载 C++ mutable
mutalbe的中文意思是“可变的,易变的”,跟constant(既C++中的const)是反义词。 在C++中,mutable也是为了突破const的限制而设置的。被mutable修饰的变量,将永远处于可变的状态,即使在一个const函数中。 我们知道,如果类的成员函数不会改变对象的状态,那么这个成员函数一般会声明成const的。但是,有些时候,我们需要在const的函数里面
2013-07-19 09:45:27
372
原创 time.h库简单应用
#include #include //CLOCKS_PER_SEC ((clock_t)1000) 表示一秒钟会有多少个时钟计时单元int main(int argc, char *argv[]){clock_t n,m;printf("%ld\n",CLOCKS_PER_SEC); n=clock(); // clock() 程序已经运行过的时间 毫秒为单位 返
2013-07-17 14:13:11
688
转载 二叉树的非递归遍历
二叉树是一种非常重要的数据结构,很多其它数据结构都是基于二叉树的基础演变而来的。对于二叉树,有前序、中序以及后序三种遍历方法。因为树的定义本身就是递归定义,因此采用递归的方法去实现树的三种遍历不仅容易理解而且代码很简洁。而对于树的遍历若采用非递归的方法,就要采用栈去模拟实现。在三种遍历中,前序和中序遍历的非递归算法都很容易实现,非递归后序遍历实现起来相对来说要难一点。一.前序遍历
2013-07-17 13:24:51
348
转载 C++ 强制类型转换
关于强制类型转换的问题,很多书都讨论过,写的最详细的是C++ 之父的《C++ 的设计和演化》。最好的解决方法就是不要使用C风格的强制类型转换,而是使用标准C++的类型转换符:static_cast, dynamic_cast。标准C++中有四个类型转换符:static_cast、dynamic_cast、reinterpret_cast、和const_cast。下面对它们一一进行介绍。
2013-07-17 09:39:33
378
转载 WINDOWS临界区
WINDOWS下临界区的实现思路很简单,就是如果只有一个线程进入临界区的时候,只记录此线程的ID,让线程继续运行,如果此线程还没有离开临界区时又有另一个线程要进入临界区时,就生成一个内核对象,然后在此内核变量上进行等待,当线程退出时,把内核变量设置成受信状态,唤醒等待的线程。实现方法可以分成两部分,一部分是进入线程的控制,在CRITICAL_SECTION结构中有一个变量表示进入线程循环进入的
2013-07-16 20:38:41
1035
转载 二叉查找树(二叉排序树)的详细实现
1、序 详细实现了二叉查找树的各种操作:插入结点、构造二叉树、删除结点、查找、 查找最大值、查找最小值、查找指定结点的前驱和后继2、二叉查找树简介 它或者是一棵空树;或者是具有下列性质的二叉树: (1)若左子树不空,则左子树上所有结点的值均小于它的根结点的值; (2)若右子树不空,则右子树上所有结点的值均大于它的根结点的值; (3)左、右子树也分别为二叉排序树
2013-07-16 19:33:59
429
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人