自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(35)
  • 收藏
  • 关注

原创 用MFC编写访问HTTPS程序之忽略无效证书验证

最近需要写一个与HTTPS通讯的APP,但是由于本人是第一次编写这样的网络程序,所以忽略无效证书验证这个问题一直困扰了1-2天,由于在网上的资料基本上都是说同样的问题,但是忽略了一点没有说明的,就是要Query服务器的状态,经过本人不断的查资料,结果终于找到了答案,下面是一些整理

2011-08-18 10:14:51 7213 1

原创 MFC Radio按钮组的使用例子

<br />首先我们要完成一个功能,在一个添加新用户的场景里,通过Radio按钮来判断用户选择的是管理员还是普通用户。<br /> <br />要使用Radio组的功能首先我们必须作如下设置:<br /> <br />1、2个Radio按钮的ID号不同,但是他们的tab顺序必须是按顺序排列的,这些都可以在Resource.h文件里面查看到。<br />      如:Radio1  ID:IDC_RADIO_ADMIN<br />            Radio2  ID:IDC_RADIO_USER<b

2010-12-04 09:57:00 10212

原创 赫夫曼树 一些操作

<br />HuffmanTree.h<br /> <br />#ifndef HUFFMANTREE#define OK 1#define ERROR 0typedef void* ElemType;typedef char** HuffmanCode;typedef struct HTNode{ ElemType weight; unsigned int parent, lchild, rchild;}*HuffmanTree;int init_Huffman

2010-10-07 21:37:00 714

原创 孩子兄弟法 建立树和森林

CSTree.h#ifndef CSTREE_H_H#define OK 1#define ERROR 0#define MAX(x,y) (x) > (y) ? (x) : (y)typedef void* ElemType;typedef struct CSNode{ ElemType data; struct CSNode *first_child, *next_sibling;}*CSTree;int init_CSTree(CSTree);int mak

2010-09-23 23:38:00 1844

原创 二叉树 一些操作

<br />BiTree.h<br /> <br />#ifndef BITREE_H_H#define OK 1#define ERROR 0typedef char ElemType;typedef struct BiLNode{ ElemType data; struct BiLNode *lchild; struct BiLNode *rchild;}BiTree;int init_BiTree(BiTree*);int make_node(BiLNode

2010-09-13 22:14:00 438

原创 广义表 一些操作

SString.h#ifndef SSTRING_H_H#define OK 0#define ERROR -1#define MAX_LENGTH 255typedef unsigned char SString[MAX_LENGTH + 1]; //第0个位置存放串的长度int sstr_assign(SString, const char*);int sstr_print(SString);int sstr_copy(SString, SString);int sstr

2010-09-07 17:19:00 602

原创 十字链表 一些操作

<br />CrossList.h<br /> <br />#ifndef CROSSLIST_H_H#define OK 1#define ERROR 0typedef int ElemType;typedef struct OLNode{ ElemType data; int i, j; struct OLNode *right, *down;}OLNode;typedef struct{ OLNode *rhead, *chead; int mu

2010-09-01 16:03:00 979

原创 顺序存储 矩阵 一些操作

Matrix.h#ifndef MATRIX_H_H#define OK 0#define ERROR -1#define MAX_DIM_SIZE 8typedef int ElemType;typedef struct{ ElemType *base; //矩阵基地址 int dim; //矩阵维数 int *bounds; //保存维界值。如A[3][2] bounds[0] = 3, bounds[1] = 2 int *constants; //保

2010-08-16 21:51:00 552

原创 MFC 画时钟刻度

首先建立MFC Application 选择 simple document  然后在OnDraw函数里面添加如下代码。void CClockMFCView::OnDraw(CDC* pDC){ CClockMFCDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); // TODO: add draw code for native data here //思路:先从圆心画线到每分钟的点上, //然后再用函数画一个无线条颜色的圆盖在上面

2010-08-15 12:38:00 6338 4

原创 KMP算法代码

<br />KMP.H<br /> <br />#ifndef KMP_H_H#define OK 0#define ERROR -1#define MAX_LENGTH 255typedef unsigned char SString[MAX_LENGTH + 1]; //第0个位置存放串的长度int sstr_assign(SString, const char*);int sstr_print(SString);int print_nextval(SString, int*

2010-08-12 21:24:00 2057

原创 串的模式匹配算法(求子串位置的定位函数,适合一般字符串定位)

<br />SString.h<br /> <br />#ifndef SSTRING_H_H#define OK 0#define ERROR -1#define MAX_LENGTH 255typedef unsigned char SString[MAX_LENGTH + 1]; //第0个位置存放串的长度int sstr_assign(SString, const char*);int sstr_index(SString, SString, int);int sstr_

2010-08-11 16:54:00 4141

原创 堆分配串一些操作

<br />HString.h<br /> <br />#ifndef HSTRING_H_H#define OK 0#define ERROR -1typedef struct{ char *ch; int length;}HString;int hstr_assign(HString*, const char*);int hstr_print(HString*);int hstr_length(HString*);int hstr_compare(HStrin

2010-08-11 15:31:00 513

原创 定长顺序串一些操作

SString.h#ifndef SSTRING_H_H#define OK 0#define ERROR -1#define MAX_LENGTH 255typedef unsigned char SString[MAX_LENGTH + 1]; //第0个位置存放串的长度int sstr_assign(SString, const char*);int sstr_print(SString);int sstr_copy(SString, SString);int sstr

2010-08-10 21:55:00 725

原创 链式队列一些操作

<br />LinkQueue.h<br /> <br />#ifndef LINKQUEUE_H_H#define OK 0#define ERROR -1typedef int type;typedef struct QNode{ type date; struct QNode *next;}QNode;typedef struct{ QNode *front; QNode *rear;}LinkQueue;int init_linkQueue

2010-08-10 16:03:00 369

原创 顺序循环队列一些操作

<br />CircularQueue.h<br />#ifndef SQQUEUE_H_H#define OK 0#define ERROR -1#define MAX_SIZE 5typedef int type;typedef struct SNode{ type date[MAX_SIZE]; int front; //队头指针 int rear; //对尾指针 int queue_length; int queue_size;}SqQueue

2010-08-09 18:29:00 383

原创 顺序队列一些操作

<br />SqQueue.h<br />#ifndef SQQUEUE_H_H#define OK 0#define ERROR -1#define MAX_SIZE 100typedef int type;typedef struct SNode{ type date[MAX_SIZE]; int front; //队头指针 int rear; //对尾指针 int queue_length; int queue_size;}SqQueue;

2010-08-09 17:53:00 290

原创 explicit一些用途

Code: explicit是在类里面声明构造函数的,它的作用是可以防止对象间的隐式转换。被声明为explicit的构造函数通常比其非explicit更受欢迎,因为它们禁止编译器执行非预期的类型转换。除非有一个好理由允许构造函数被用于隐式类型转换,否则我会把它声明为explicit。       例如:       class Dog      

2010-08-08 11:28:00 420

原创 C++多态性一些总结

Code: #include       using namespace std;             /*         总结多态性几个要点:         1、一定要有虚函数,非虚函数不能实现多态         2、子类一定要改写父类的虚函数,不改写不能实现多态         3、必须用

2010-08-08 11:24:00 476

原创 dynamic_cast 的一些用途

Code: 要使用dynamic_cast动态类型转换,必须满足下面条件:       1、基类至少要有一个虚函数       2、需要多态性       3、编译器打开RTTI检查             dynamic_cast功能:       当某些情况下不能使用运行时多态的时候,就可以用dynamic_

2010-08-08 11:23:00 525

原创 简单迷宫(链栈)

Stack.hCode: #ifndef STACK_H_H    #define OK  0    #define ERROR   -1       typedef struct Point    {        int x;        int y;    }Point;   

2010-08-08 11:21:00 541

原创 const的一些总结

1 int* p;2 const int* p;3 int const* p;4 int* p const;5 const int* p const;要判断const修饰指针的特性,我们可以看const这个关键字在*号的左边还是右边。const int* p;const在*号的左边,说明指针p指向的内容的值不能被修改,而指针的地址可以被修改,即可以从新指向到别的变量。

2010-08-08 11:13:00 278

原创 简单迷宫实验(链栈)

Stack.h#ifndef STACK_H_H#define OK 0#define ERROR -1typedef struct Point{ int x; int y;}Point;typedef struct Stack{ Point pt; //保存坐标点 struct Stack *next;}*LinkStack;int init_linkStack(LinkStack*);int make_node(Stack**);

2010-08-07 21:40:00 592

原创 链栈的一些操作

<br />LinkStack.h头文件<br />#ifndef LINKSTACK_H_H #define OK 0 #define ERROR -1 typedef int type; typedef struct LNode { type data; struct LNode *next;}*LinkStack; int init_linkStack(LinkStack*);int make_node(LNo

2010-08-06 20:36:00 342

原创 const的一些总结

<br />1 int* p;<br />2 const int* p;<br />3 int const* p;<br />4 int* p const;<br />5 const int* p const;<br />要判断const修饰指针的特性,我们可以看const这个关键字在*号的左边还是右边。<br />const int* p;<br />const在*号的左边,说明指针p指向的内容的值不能被修改,而指针的地址可以被修改,即可以从新指向到别的变量。<br />int* p const;<br

2010-08-06 18:07:00 283

原创 dynamic_cast 的一些用途

<br />要使用dynamic_cast动态类型转换,必须满足下面条件:1、基类至少要有一个虚函数2、需要多态性3、编译器打开RTTI检查dynamic_cast功能:当某些情况下不能使用运行时多态的时候,就可以用dynamic_cast代替,例如:struct Base{ virtual void func(){}};struct D : public Base{ void func(){} void f(){}};void tes

2010-08-06 18:05:00 699

原创 explicit一些用途

<br />explicit是在类里面声明构造函数的,它的作用是可以防止对象间的隐式转换。被声明为explicit的构造函数通常比其非explicit更受欢迎,因为它们禁止编译器执行非预期的类型转换。除非有一个好理由允许构造函数被用于隐式类型转换,否则我会把它声明为explicit。例如:class Dog{public: Dog() {} /* explicit */ Dog(int i) {} void func(Dog dog) { }};int _tmai

2010-08-06 18:01:00 441

原创 C++多态性一些总结

<br />#include<iostream>using namespace std;/* 总结多态性几个要点: 1、一定要有虚函数,非虚函数不能实现多态 2、子类一定要改写父类的虚函数,不改写不能实现多态 3、必须用父类指针指向子类对象来调用虚函数,直接用子类指针 来调用不是多态性,而只是普通调用 4、有一个纯虚函数的类就叫抽象类 5、虚函数里面可以写代码,且需要声明*/class Shape{public: void draw() {

2010-08-06 17:56:00 565

原创 顺序栈的一些操作

<br />SqStack.h头文件<br />#ifndef SQSTACK_H_H#define OK 0#define ERROR -1#define MAX_SIZE 100typedef int type;typedef struct SNode{ type *base; type *top; int stack_size; int stack_length;}SqStack;int init_stack(SqStack*);int dest

2010-08-06 17:47:00 324

原创 单链表的一些操作

<br />LinkList.h头文件<br />#ifndef LINKLIST_H_H#define OK 0#define ERROR -1typedef int type;typedef struct LNode{ type elem; struct LNode *next;}LNode,*LinkList;int create_linkList(LinkList);int init_linkList(LinkList*);int print_link

2010-08-05 17:17:00 347

原创 顺序表的一些操作

<br />#ifndef LIST_H_H#define LIST_INIT_SIZE 100#define OK 0#define ERROR -1typedef int type;typedef struct Node{ type *elem; int list_length; int list_size;}SqList;// create list by arrayint compare(SqList *list, type e){

2010-08-05 17:12:00 288

原创 双循环链表的一些操作

DLinkList.h头文件#ifndef DLINKLIST_H_H#define OK 0#define ERROR -1typedef int type;typedef struct DLNode{ type elem; struct DLNode *prior; struct DLNode *next;}*DLinkList, DLNode;int init_dlinkList(DLinkList*);int create_dlinkList(DLin

2010-08-05 17:03:00 394

原创 静态链表的一些操作

SLinkList.h头文件 #ifndef SLINKLIST_H_H#define MAX_SIZE 100#define OK 0#define ERROR -1typedef int type;typedef struct SNode{ type elem; int cur;}SLinkList[MAX_SIZE];int init_slinkList(SLinkList);int malloc_node(SLinkList);void fre

2010-08-05 16:52:00 729 1

原创 邻接表-建立无向图、无向网、有向图、有向网

#include#include#define MAX_VERTEX_NUM 20#define OK  1#define ERROR 0typedef int InfoType;       /* 该弧相关信息的指针类型 */typedef char VertexType;      /* 顶点的类型 */typedef struct ArcNode       /* 弧结点的结构 */

2009-06-06 13:17:00 22228 6

原创 线索化二叉树

编译环境:VC++6.0 #include#include#include#define ERROR 0#define OK  1typedef char ElemType;typedef enum PointerTag{Link,Thread};  /* Link==0: 指针 Thread==1: 线索 *//* 二叉树结构体 */typedef struct _ThrBi

2009-06-04 13:36:00 654

原创 数组表示法建立图

#include#include#include#include#define OK  1#define ERROR 0#define INFINITY -1        /* -1代表无穷 */#define MAX_VERTEX_NUM 20       /* 最大顶点个数 */typedef int VertexType;        /* 向量的类型 */typedef int I

2009-06-03 21:55:00 1131

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除