自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

CppPlayer

CppPlayer

  • 博客(214)
  • 资源 (10)
  • 收藏
  • 关注

原创 MFC接受 keyDown消息

在一个对话框程序当中,当对话框上没有任何一个控件,可以截获到keyDown消息;但是当对话框上加入任何一个控件之后,就不会像刚才那样截获到消息:如果要截获键盘消息:可以重载函数PreTranslateMessage(MSG* pMsg) if(pMsg->message == WM_KEYDOWN) {         MessageBox("Hello","测试",MB_

2014-12-22 17:44:09 4239

原创 C++算法之 二维数组的查找

题目:在一个二维数组当中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组当中是否含有该整数。 思路:1   2   8     92   4   9    124   7   10  13 6   8   11  15每一行递增,如果右上角的数字小于要找的数字,那么这一行所有的数字都

2014-12-22 14:18:50 3424

原创 C++算法之 替换数组空格

题目:请实现一个函数,把字符串中的每个空格替换为"%20",例如输入"We are happy",则输出 "We%20are%20happy" 方法1: 重新申请一个数组,然后遍历原来的数组,遇到空格,就用%20填充新的数组,最后得到结果;缺点:要重新申请数组方法2: 从前往后遍历,遇到空格就把后面的内容向后移动两位;缺点:有些内容会向后移动n次,如果有n个空格,算法时间复杂度为O(n

2014-12-22 11:18:43 2679

原创 win32 带登录界面的最简单版本计算器

最简单的加减乘除计算,目的是为了复习win32的用法:界面:  制作步骤:第一步:建立一个win32工程第二步:插入两个对话框 登录对话框  和 计算对话框第三步:编写代码实现即可,主要就是熟悉win32 的几个api函数:// 1218.cpp : Defines the entry point for the console application.

2014-12-19 10:56:14 2930 1

原创 C++ 算法之 输入两个整数m n,求计算需要改变m的二进制表示中的多少位才能得到n

思路:先把m与n进行异或运算,再统计异或结果当中的1的个数;异或:相同为0,不同为1; 0^0 = 0; 1^1 = 0; 0^1 = 1; 1^0 = 1;比如10 : 1010 ;  13:1101;10^13  ------>    1 0 1 0                           1 1  0 1结果                   0  1 1 

2014-12-18 09:33:20 2265

原创 C++算法之 一句话判断一个整数是不是2 的整数次方

思路:一个整数如果是2的整数次方,那么它的二进制表示中有且只有一位是1,而其他所有位都是0。把这个整数与这个整数减去1之后进行与运算,那么这个整数当中唯一的1会变为0,这个整数也变为0;代码:// Is2.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include using namespace std;bool is

2014-12-18 09:27:18 4037

原创 求一个整数中二进制1的个数

题目:求一个整数二进制表示1的个数 第一版:思路:如果一个整数与1做与运算,结果为1,那么该整数最右边一位是1,否则是0;int NumberOf1(int n){ int count = 0; while (n) { if (n&1)//如果一个整数与1做与运算的结果是1,表示该整数最右边是1,否则是0; { count++; }

2014-12-18 08:55:20 3712

原创 MFC当中用到的icon文件图片怎么制作?

今天学树形控件TreeContral 的时候要用到icon图片,到网上下载了几个图片导入发现有问题,最后百度找了一款制作icon图片的工具Axialis IconWorkshop;下载就可以制作icon图片!

2014-12-17 16:45:01 5052

原创 C++ 算法之 查找链表中间节点

解析:设立两个指针,p每次移动两下,q每次只移动一下,那么当p指向最后一个节点的时候,那么q就是中间的节点了ListNode* FindMidNode(ListNode* pHead){ if (pHead == NULL) { return NULL; } if (pHead->m_pNext == NULL || pHead->m_pNext->m_pNext =

2014-12-16 15:34:31 2881

原创 C++ 算法之 是否为环形链表

如果有两个头结点指针,一个走的快,一个走的慢,那么若干步以后,快的指针总会超过慢的指针一圈。 bool IsCycleList(ListNode* pHead){ if(pHead== NULL) return false; if (pHead->m_pNext == NULL) { return false; } ListNode* pFastNod

2014-12-16 15:32:34 2029 1

原创 C++算法之 链表中倒数第k个节点

题目:输入一个链表,输出链表中倒数第k个节点,为了符合大多数人的习惯,本题从1开始计数,即链表的尾巴节点是倒数第一个节点。方法1:先遍历链表得到链表的个数n,倒数第k个节点就是n-k+1再遍历一次链表,找到第n-k+1个节点就是倒数第k个节点;这种方法遍历两次链表;方法2:先遍历链表把链表压入一个栈,再出栈,第k次出栈就是第k个节点;方法3:先反转链表,再遍历方法4:定义两个指针,

2014-12-16 15:31:23 4479

原创 C++ 算法之快速排序

快速排序的思想: 通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。 主要思路: 先从后面开始遍历找到比key值小的一个值,把这个值放到key的前面,再从前面开始遍历找比key大的值; 代码如下:// QuickS

2014-12-16 15:29:17 924

原创 C++算法之 二分查找

二分查找:二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。代码不多也就几行;主要 start = 0; end = nLength -1;while(start  #include using namespace std; /* run this program using the console pauser

2014-12-14 21:27:16 7917 1

原创 C++算法之 倒序输出一个链表

题目:给定一个头结点,倒叙输出一个链表 解法1:先将链表反转,在遍历输出解法2:不修改链表自身的结构,动态申请一段空间,申请一个指针数组,数组内存放的指针指向链表的每个值,再遍历数组输出:void PrintListBack(ListNode* head){ int n = GetLength(head); ListNode** p = new ListNode*[n+

2014-12-12 15:12:42 9243 1

原创 C++算法之 反转单链表

题目:定义一个函数,输入一个链表的头结点,反转该链表并输出反转后链表的头结点,链表节点定义为:struct ListNode{     int    m_nValue;    ListNode* m_pNext;};算法思路:链表  1-->2-->3-->4-->5建立一个 pPrev节点,而且为空节点;  pPrev = NULL;再建立一个节点pNode =

2014-12-12 14:10:06 16341 1

原创 CString 没有SetWindowText

CString 没有SetWindowText 错误原因:  建立控件变量的时候选择了值变量 value  而不是 contral                        value值变量与控件绑定在一起,一般用于与控件之间传递数据 UpdateData(true)orfalse                    contral变量是一个完整的控件实例对象,拥有该控件的一

2014-12-11 16:37:40 1997

转载 控件中添加的成员变量value和control的区别 .

control型变量是这个控件所属类的一个实例(对象)可以通过这个变量来对该控件进行一些设置。而value只是用来传递数据,不能对控件进行其它的操作。control型变量可以获得控件的实例,通过这个变量,你可以操纵控件value型变量仅仅可以获得该控件的public型变量 如果你添加了一个m_CtrlEdit的control型变量你可以调用控件支持的所有函数,如: m_Ct

2014-12-11 16:30:20 3846

原创 VS2012 使用CStatic类显示图片

CStatic显示图片:CStatic类提供了一个Windows静态控件的性能;一个静态控件用来显示文本字符串,框图标,位图。构造函数CStatic::CStatic()初始化Create 创建Windows静态控件并将它与该CStatic对象连接 CStatic::CreateBOOL Create( LPCTSTR lpszText, DWORD dwS

2014-12-11 15:33:30 7719 1

原创 VS2012:LoadBitmap(IDB_BITMAP1) -- 未定义标识符 IDB_BITMAP1

LoadBitmap(IDB_BITMAP1) -- 未定义标识符 IDB_BITMAP1: 错误原因:1:头文件没有加入 #include"resource.h" 2:没有导入该资源或者资源ID错误

2014-12-11 15:17:21 8719 1

原创 C++算法之 找出两个链表的公共节点

题目:输入两个链表,找出它们第一个公共节点。链表节点定义如下:struct ListNode{        int    m_nKey;        ListNode*   m_pNext;}  方法1:在第一个链表上顺序遍历每一个节点,没遍历一个节点,在第二个链表上顺序遍历每个节点。  O(n^2)方法2:找到两个链表的长度差,先遍历长链表到短链表的长度处

2014-12-11 11:13:38 3217

原创 扩展CList类加入排序功能

这里实现了两种排序:链表内部排序和链表外部排序:链表外部排序不会真实改变数据顺序: //在链表外部进行排序,不会直接影响到链表内的数据排序;实现方法是 申请一段对空间数组,用来存放指针,这些指针,指向//链表内的数据,排序的时候根据链表内数据的大小只要交换指针的位置就可以;比如链表内数据为 55 22 33 11 44;那么申请//一段堆空间数组 p[] 数组里面存放指针 p[

2014-12-10 13:59:44 2849 1

原创 在O(1)时间内删除链表节点

题目:给定单向链表的头指针和一个节点指针,定义一个函数在O(1)的时间删除该节点。struct ListNode{ int    m_nValue; ListNode* m_pNext;};void DeleteNode(ListNode** pListHead, ListNode* pToBeDeleted); 算法思路:一般我们是从头节点开始遍历,知道找到要

2014-12-10 09:51:59 2198

原创 C++算法之 两个队列实现一个栈

题目:用两个队列实现一个栈算法思路:现有两个队列q1与q2,入栈:如果q1与q2都为空,那么我们选择q1入栈也就是入队列,比如q1入栈 1 2 3 4 ;现在要出栈,后进先出那么4要出栈。但是q1是一个队列,先进先出,那么 1 2 3出队列 q2 1 2 3 入队列,q1中此时剩余4,把4出对列达到出栈的效果。  这个时候如果我们又加入一个元素5,那么我们应该把5放到q1还是q2,

2014-12-09 10:48:19 13759

原创 C++算法之 用两个栈实现一个队列

算法思路:一个栈用来入队列,一个栈用来出队列:现有两个栈s1 和s2;s1用来入栈,比如  队列进入  1 2 3 4 5 那么s1进栈 1 2 3 4 5 ,现在要出队列,意思就是要1先出来;那么我们把栈s1的数据取出来都压到栈s2当中,那么栈s2就是 5 4 3 2 1 ;s2再出栈,此时1出栈就模拟出出队列的效果; 编写代码:// QueueFrom2Stack.cp

2014-12-08 17:44:40 1185

原创 memcpy 与 memmove

memcpy:C和C++当中使用的内存拷贝函数,memcpy函数的功能是从源src所指的内存地址的起始位置开始拷贝n个字节到目标dest所指的内存地址的起始位置中。 函数原型 void* memcpy(void* dest, const void* src, size_t count)函数返回指向dest的指针: mencpy与memmove的区别:根据源代码编写自己的Menc

2014-12-07 20:24:38 1385

原创 C++算法之 自己写循环队列

myQuene.h#pragma oncetypedef int TYPE;class myQueue{ TYPE* m_pData; int m_nCount; int m_nHead,m_nTail;public: myQueue(int nCount = 4) { m_nCount = nCount; m_pData = new

2014-12-06 17:26:28 1575

原创 C++算法之 写自己的栈stack 动态申请

myStack。h#pragma once//typedef int TYPE;templateclass myStack { TYPE* m_pData;//用new在堆上动态建立 int m_nTop; int m_nCount;public: bool isFull() { return m_nTop+1 >= m_nCount;

2014-12-06 17:20:44 2126

原创 C++算法之 自己写一个简单的栈Stack

// Stack.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include using namespace std;enum{COUNT = 8};typedef int TYPE;class CStack{ TYPE m_pData[COUNT]; int m_nTop; int m_nCount;

2014-12-06 15:51:01 5163

原创 VS2012 调出深色界面

2014-12-05 14:18:42 2709

原创 C++算法之 合并两个有序链表

题目:合并两个已经排序好的链表方法1:两个链表     比如链表1: 1->3->5->7->9   链表2:  2->4->6->8->10   跟我们合并两个数组一样,链表1的头结点  和链表2的头节点比较,如果链表1头节点的值大于链表2头接点的值,   那么链表2的头结点为合并链表的头结点,那么链表1的头节点继续和链表2的第二个节点(剩余链表2的头结点)   作比

2014-12-05 11:39:51 25654

原创 effective C++ 读书笔记 条款36-37

条款36:绝不重新定义继承而来的non-virtual函数重要点:non-virtual函数都是静态绑定// 1241.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include using namespace std;class Base{public: void func() { cout<<

2014-12-04 15:51:02 940

原创 C++ 对象的静态类型与动态类型

在C++当中:因为出现了继承:继承导致对象的指针和引用具有两种不同的类型: 静态类型 和 动态类型 。 静态类型 :指针或者是引用声明时的类型。 动态类型 :由他实际指向的类型确定。 class Base{ }class Derived:public Base{}Base* base //base的静态类型是 Base* = new Derive

2014-12-04 14:19:10 2061

原创 C++算法之 合并两个数组

1:合并排序,将两个已经排序的数组合并成一个数组,其中一个数组能容下两个数组的所有元素; 因为题目当中已经有一个数组可以容的下两个数组的元素,所有不需要请求新的数组,但是要把比较后的数组从后面往前面放;比如有数组A实际5个元素,数组B实际5个元素,那么我们  让a[4]与b[4]比较,把大的那一个放到a[9];比如a[4]>b[4];那么把a[4]放到a[9];再让a[3]与b[4

2014-12-04 10:10:27 32706 2

原创 自己写的CArray类

myArray.h:#pragma oncetemplateclass myArray{public: myArray(void); ~myArray(void);private: int m_nSize;//数据长度(也就是实际占用数组的内容的长度) int m_nCount;//资源数量(也就是数组的长度) TYPE* m_pDa

2014-12-03 17:33:57 723

原创 策略模式 Strategy模式

Strategy模式:定义了算法家族,分别封装起来,让它们之间可以互相替换。

2014-12-02 16:39:03 779

原创 内存对齐

// 111.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include using namespace std;/* 编译器内存字节对齐的原则1. 数据类型的自身对齐值 数据类型的自身对齐值:其在内存中所占的字节数,如在3

2014-12-02 09:13:27 836

原创 effective C++ 读书笔记 条款12与条款13

条款12:确定你的public继承塑膜出is-a关系:这个条款主要将了一些特殊情况:比如企鹅是鸟,企鹅可以继承于鸟,但是鸟会飞,企鹅却不能飞;还有让正方形继承矩形可能也会造成这种尴尬!这个问题以前想过,但是不知道怎么解决,如果现实生活当中确实要这么使用:比如 猫 狗 鱼  猪等等许多动物继承Animal类,但是猫狗等不会游泳,假如这里是有很多动物,不能采用鱼里面专门加一个方法!  这个

2014-12-01 19:28:46 807

原创 自己写的String类

1:MyString.h#pragma onceclass myCString{public: int GetLength()const {return m_nLength;} myCString(void);//无参构造函数 myCString(const char* p);//根据字符串常量初始化 myCString(const myCString& rhs

2014-12-01 08:49:38 2148

原创 char* A ;char*B strcpy(A,B)出错

今天突然用到strcpy()函数于是char* A = "ABCDEFG";char* B = "GGGG";strcpy(A,B);编译通过,但是运行竟然直接结束了,报错; 为什么呢?因为char * A = “ABCDEFG”;"ABCDEFG"这是个const性质的,那么它存在于静态存储区,A指针指向静态存储区,但是不能改变它的值所以不能使用strcp

2014-11-30 16:21:00 4259

原创 VS2012解决不能使用 strcpy问题

在VS2012当中昨天发现不可以使用strcpy,原因是VS2012默认是unicode字符:要想使用strcpy可以按照下面的进行设置:

2014-11-28 08:47:13 6479

jsoncpp 写入乱码解决版本

解决乱码问题,jsoncpp 写入乱码解决版本

2018-10-09

停车场管理系统C++

C++ 停车场管理系统 1500行代码 实现了 停车场模拟的国内工程

2018-07-31

图书管理系统

C++ 图书管理系统 C++ 图书管理系统 C++ 图书管理系统

2018-07-16

CTP交易开发十里

ctp开发 期货交易开发 上期所 demo用例 可以登录下单测试

2017-11-20

Socket入门代码

windows网络编程 最基础 socket编程 网络 TCP Udp

2015-04-12

2048游戏C++实现

2048 VS2012 实现 ,简单的逻辑实现,UI界面很丑陋,参考了别人的代码重新做的,注释很详细了!

2015-01-09

MFC记事本开发

记事本开发 ,有详细的代码注释,几乎每一句都注释了

2014-12-29

effective C++ 读书笔记

effective C++ 很好 很不错 最好的C++进阶资料

2014-11-20

空空如也

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

TA关注的人

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