自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(72)
  • 资源 (3)
  • 收藏
  • 关注

原创 MFC 使用ToolTip提示信息

最近遇到界面显示信息被截断、显示不全的问题,所以使用tooltip来提示信息使用MFC中封装好的CToolTipCtrl类1、定义变量 CToolTipCtrl m_tooltip2、在窗体的OnInitDialog()中创建m_Tooltip。//创建m_tooltipm_ToolTip.Create(this);//, TTS_BALLOON);//将CToolTip...

2019-04-23 11:40:44 2352

原创 Base64加解密C++

 BASE64.CPP#include "BASE64.h" static const CHAR* DATA_BIN2ASCII = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; INT BASE64_Encode( const BYTE* inputBuffer, INT inpu...

2018-09-28 09:49:46 998

原创 MFC 初始化时对话框的隐藏(处理showwindow时窗口闪的情况)

在初始化时 当使用 ShowWindow(SW_HIDE) 隐藏对话框时 出现闪的情况 如下解决:在如下位置添加 ON_WM_WINDOWPOSCHANGING() BEGIN_MESSAGE_MAP()    ON_WM_WINDOWPOSCHANGING() END_MESSAGE_MAP()代码中添加声明 afx_msg void OnWindowPosChanging(WINDOWPOS*...

2018-05-28 09:41:51 3274

原创 在kali Linux上安装 ssh 并使用putty配合连接

在虚拟机kali linux上安装了ssh后 就可以在实体机上利用putty进行远程命令操作首先给予root用户权限或者使用sudo命令一、安装ssh,使用命令:安装完成后,进入ssh目录更改文件sshd_config里面几项内容vi  sshd_config  然后让其显示行号 :set nu  然后更改 PermitRootLogin prohibit-password为PermitRootL...

2018-04-04 11:10:25 3461

原创 根据驱动路径获取无线网卡的mac

//// test.cpp : Defines the entry point for the console application.#pragma once#include <winsock2.h>#include "winnt.h"#include "windef.h"#include <string>#include <atlstr.h>...

2017-10-20 14:23:31 1049

原创 字符串转16进制和16进制转字符串

//字符串转16进制BOOL str2Hs(const char * str, LPSTR lpHs) { int i=0; while (1) { if (0 == str[i]) break; sprintf(lpHs+i*2, "%02X", (unsigned char)str[i]); i++; } return

2017-09-12 11:12:12 1437

原创 MFC 移动控件

将ID名为IDC_CHECK_AUTOLOGIN的控件向上移动 60        CRect rectControl;LONG lnRemove = 60;GetDlgItem(IDC_CHECK_AUTOLOGIN)->GetWindowRect(&rectControl);ScreenToClient(rectControl);GetDlgItem(IDC_CHECK_A

2017-08-30 18:25:47 708

转载 Windows下线程的创建、退出和资源释放

可以通过以下几种方法创建一个线程:1、CreateThread2、_beginthread3、_beginthreadex4、AfxBeginThread--------------------------------------------------------------------------------------1、CreateThread函数原型

2017-07-18 11:25:16 649

原创 为何要用Unicode?

Unicode 是为了解决传统的字符编码方案的局限而产生的,例如ISO 8859所定义的字符虽然在不同的国家中广泛地使用,可是在不同国家间却经常出现不兼容的情况。很多传统的编码方式都有一个共同的问题,即容许电脑处理双语环境(通常使用拉丁字母以及其本地语言),但却无法同时支持多语言环境(指可同时处理多种语言混合的情况)。 开发人员在开发应用程序时候通常使用Unicode字符和字符串。能够

2017-07-14 11:20:14 3555

转载 C++中的TYPE、DWORD与WORD

在Visual C++ 6.0中,BYTE与WORD,DWORD本质上都是一种无符号整型,它们在WINDEF.H中被定义,定义如下:typedef unsigned char       BYTE;typedef unsigned short      WORD;typedef unsigned long       DWORD;也就是说BYTE是无符号的char型(cha

2017-07-11 14:31:01 1492

原创 常见的路由算法

路由算法在路由协议中起着至关重要的作用,采用何种算法往往决定了最终的寻径结果,因此选择路由算法一定要仔细。     通常需要综合考虑以下几个设计目标:        (1)最优化:指路由算法选择最佳路径的能力。         (2)简洁性:算法设计简洁,利用最少的软件和开销,提供最有效的功能。         (3)坚固性:路由算法处于非正常或不可预料的环境时,如硬件故障、负载过

2017-07-09 23:25:47 1105

转载 海量数据处理

1、海量日志数据,提取出某日访问百度次数最多的那个IP。   首先是这一天,并且是访问百度的日志中的IP取出来,逐个写入到一个大文件中。注意到IP 是32位的,最多有个2^32个IP。同样可以采用映射的方法,比如模1000,把整个大文件映射为1000个小文件,再找出每个小文件中出现频率最大的IP (可以采用hash_map进行频率统计,然后再找出频率最大的几个)及相应的频率。然后再在这1000

2016-10-20 10:39:18 315

原创 求数组(元素可为正数、负数、0)的最大子序列和

求数组(元素可为正数、负数、0)的最大子序列和:    代码实现:int max(int a, int b){ if (a > b) return a; else return b;}int FindMaxArr(int arr[],int len){ assert(arr); int result = arr[0]; int cur = arr[0]; f

2016-08-16 14:29:00 1051

原创 const与#define的区别

const与#define相比有什么不同?         C++语言可以用const定义常量,也可以用#define定义常量,但前者比后者有更多的优点:        1、const常量有数据类型,而宏常量没有数据类型。编译器可以对前者进行类型安全检查,而对后者只进行字符替换,没有类型安全检查,并且在字符替换中可能产生意料不到的错误(边际效应)        2、有些集成化的调试工具

2016-08-14 20:15:33 216

原创 Linux下Mysql的安装和使用

一、    linux下的mysql的安装:           1、用命令安装(用yum源安装)有了yum那么安装mysql就会很简单;    (ps:如果以下命令运行通不过,那么就要更新yum源,可以百度去更新);     A:首先先查看mysql是否已安装        命令:yum list installed mysql*           rmp -qa

2016-08-04 15:28:52 269

原创 判定一个组数是否是一个搜索二叉数的后序遍历

判定一个组数是否是一个搜索二叉数的后序遍历   对于一个序列arr,最后一个元素是arr[len] (也就是根root),如果去掉最后一个元素的序列为T,那么T满足:T可以分成两段,前一段(左子树)小于root,后一段(右子树)大于root,且这两段(子树)都是合法的后序序列。完美的递归定义  。        第一种方法:bool Ispostsort(int* arr,in

2016-08-03 21:59:59 256

原创 TCP的三次握手和四次挥手详解

TCP协议的三次握手和四次挥手是常考的面试题。在此我们来分析一下其原理。          当谈到TCP协议的三次握手和挥手时,可以理解那时客户端和服务器端的建立连接和解除连接的过程。  一、TCP的概念:         TCP(Transmission Control Protocol 传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协 议,由IETF的RFC

2016-07-30 12:30:29 614

原创 静态库和动态库的区别

什么是库?     库通俗的讲就是把一些常用的函数的目标文件打包在一起,提供相应的接口,便于程序员使用。库是写好的现有的,成熟的,可以复用的代码。现实中每个程序都要依赖很多基础的底层库,不可能每个人的代码都从零开始,因此库的存在意义非同寻常。像我们中常用的输出printf函数。当我们在使用时并不关心其底层是如何实现,只是使用其来提高编写代码的效率。       本质上来说库是一种可执行代码

2016-07-26 22:04:56 1084

原创 Linux的五种I/O模型

在了解Linux五种模型之前,先了解一下什么叫同步?什么叫异步?一、同步 所谓同步,通俗理解就是就是在发出一个功能调用时,在没有得到结果之前,该调用就不返回。也就是必须一件一件事做,等前一件做完了才能做下一件事。 二、异步 所谓异步,异步的概念和同步相对。当一个异步过程调用发出后,调用者不能立刻得到结果。实际处理这个调用的部件在完成后,通过状态、通知和回调来通知调用

2016-07-26 21:51:28 676

原创 判断一个序列是否为另一个栈的出栈序列(栈的压入、弹出序列)

判断一个序列是否为另一个栈的出栈序列【思路】借用一个辅助的栈,遍历压栈顺序,先讲第一个放入栈中,这里是1,然后判断栈顶元素是不是出栈顺序的第一个元素,这里是4,很显然1≠4,所以我们继续压栈,直到相等以后开始出栈,出栈一个元素,则将出栈顺序向后移动一位,直到不相等,这样循环等压栈顺序遍历完成,如果辅助栈还不为空说明弹出序列不是该栈

2016-07-25 11:31:57 2324 3

原创 为什么要内存对齐

当我们听到”内存对齐“这个概念时,从字面意思来看,很容易理解。那就是让内存对齐。       当然  就会有人说  你这不是废话 ??        现在我就来说一说为什么要内存对齐以及怎么个对齐法(如何对齐)?       首先来谈谈什么叫内存对齐!!我百度了一下如下解释:内存对齐:      内存对齐”应该是编译器的“管辖范围”。编译器为程序中的每个“数据单元”安排在适当的

2016-07-22 23:40:43 8407 1

原创 浅谈守护进程

对于操作系统中的守护进程,它是运行在后台的一种特殊的进程。它独立于控制终端,并且周期性的执行某种任务或等待处理某些发生的事件。守护进程是一种很用用的进程,大多数服务器就是用守护进程实现的。     守护进程又名精灵进程,它与其他进程不同,其他进程都是在用户登录或运行程序时创建,在运行结束或用户注销时终止。而它们系统服务进程不受那些因素影响。   * 守护进程是后台进程,运行与终端无

2016-07-21 14:51:32 310

原创 单链表相关热点面试题(一)

对于单链表相关的问题,往往是面试的热点,在此我总结了一些单链表相关热点面试题      1、比较顺序表和链表的优缺点,说说它们分别在什么场景下使用?               一、顺序表的特点是逻辑上相邻的数据元素,物理存储位置也相邻,并且,顺序表的存储空间需要预分配。         它的优点是:            (1)方法简单,各种高级语言中都有数组,容易实现。

2016-07-21 11:26:04 404

原创 Const 在C C++里有什么不同

在C中const的用法总结起来有两种:   1、在定义变量时使用(const常量在定义后不能被修改,故在定义时一定要进行初始化操作)      A:变量是个常变量: int const a=10;                  const int a=10;      B:指针为指向常数的指针,(指针本身的值可以改变)                  const  i

2016-07-21 11:23:04 820

原创 平衡二叉树(AVLTree)详解

一、平衡二叉树:           这几天学了平衡二叉树,对于平衡二叉树,我觉得开始在理解插入旋转以及其平衡因子的调整时有点吃力。如今理清就来谈谈这部分。    对于平衡二叉树的理解:               平衡二叉树又称AVL树,(有别于AVL算法),且具有以下性质:               它是一 棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都

2016-07-06 23:27:25 1656

原创 linux下管道问题

一、管道含义              对于管道,它是一种半双工的通信机制,也就是说,他只能一端用来读,另一端用来写; 管道通信遵循先进先出的原理,并且数据只能被读取一次,当此段数据被读取后,马上会从数据中消失。(写入的数据每次都添加到管道缓冲区的末尾,读数据的时候都是从缓冲区的头部读出数据的。)     按照管道的类别分有两种管道,匿名的和命名的;按照管道的传输方向分也可以分成两种,单向

2016-07-02 14:40:48 1326

原创 面试题1-将二叉搜索树转变成排序的双向链表

输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表。要求不能创建任何新的结点,只调整指针的指向。       对于一棵二叉搜索树                                 若采用中序遍历,其遍历顺序为1-2-3-4-5-6-7,通过适当的指针变换操作,可变成的双向有序链表如下:对于将其转换为双链表有两种思路:   首先看第一种思路:

2016-06-24 20:50:06 3777

原创 二叉搜索树

二叉查找树(Binary Search Tree)(二叉搜索树,二叉排序树)它或者是一棵空树,或者是具有下列性质的二叉树:                1. 每个节点都有一个作为搜索依据的关键码(key),所有节点的关键码互不同。          2. 左子树上所有节点的关键码(key)都小于根节点的关键码(key)。          3. 右子树上所有节点的关键码(ke

2016-06-18 20:25:49 434

原创 由前序遍历和中序遍历重建二叉树

对于二叉树,在此我不做过多讲解,如有不懂,请参照一下链接点击打开链接 1、在此二叉树的定义:struct BinaryTreeNode { BinaryTreeNode *_Left; BinaryTreeNode *_Right; T _data; public: BinaryTreeNode(const T& x)

2016-06-15 09:56:53 502

原创 liunx中make、makefile使用及进度条的实现

在linux中要了解make和makefile,首先先要了解以下过程            在此,我想多说关于程序编译的一些规范和方法,一般来说,无论是C、C++、还是pas,首先要把源文件编译成中间代码文件,在Windows下也就是 .obj 文件,UNIX下是 .o 文件,即 Object File,这个动作叫做编译(compile)。然后再把大量的ObjectFile

2016-06-02 11:42:56 2832

原创 Centos下vim、ctags的配置及基本用法

一、vi/vim 基本使用方法      vi编辑器是所有Unix及Linux系统下标准的编辑器,它的强大不逊色于任何最新的文本编辑器,这里只是简单地介绍一下它的配置和一小部分指令。由于对Unix及Linux系统的任何版本,vi编辑器是完全相同的,因此您可以在其他任何介绍vi的地方进一步了解它。Vi也是Linux中最基本的文本编辑器,学会它后,您将在Linux的世界里畅行无阻。

2016-06-01 13:36:11 9843 1

原创 快速排序的优化

//快速排序//1.从数列中挑出一个元素,称为 “基准”(pivot),//2.重新排序数列,所有元素比基准值小的摆放在基准前面,所有元素比基准值大的摆在基准的后面(相同的数可以到任一边)。在这个分区退出之后,该基准就处于数列的中间位置。这个称为分区(partition)操作。//3.递归地(recursive)把小于基准值元素的子数列和大于基准值元素的子数列排序int PartSort(

2016-05-27 17:43:42 407

原创 Linux中find用法

Linux下查找文件的命令有两个;locate 和 find 首先说下locate,locate这个命令是对其生成的数据库进行遍历(生成数据库的命令:updatedb),这一特性决定了用locate查找文件速度很快,但是locate命令只能对文件进行模糊匹配,在精确度上来说差了点,简单介绍下它的两个选项: #locate        -i        //查找文件的时候不区分大小写 比如:lo

2016-05-26 09:38:21 1002

原创 排序的几种类型

//快速排序//排序思想://1.从数列中挑出一个元素,称为 “基准”(pivot),//2.重新排序数列,所有元素比基准值小的摆放在基准前面,所有元素比基准值大的摆在基准的后面(相同的数可以到任一边)。在这个分区退出之后,该基准就处于数列的中间位置。这个称为分区(partition)操作。//3.递归地(recursive)把小于基准值元素的子数列和大于基准值元素的子数列排序650) this.

2016-05-26 09:38:18 808

原创 堆的实现(大小堆及 优先队列)

一、堆的概念    堆数据结构是一种数组对象,它可以被视为一棵完全二叉树结构。  堆结构的二叉树存储是:  最大堆:每个父节点的都大于孩子节点。  最小堆:每个父节点的都小于孩子节点。     堆栈中的物体具有一个特性: 最后一个放入堆栈中的物体总是被最先拿出来, 这个特性通常称为后进先出(LIFO)队列。 堆栈中定义了一些操作。 两个最重要的是PUSH和POP。 PUSH操作在堆栈的顶部加入一

2016-05-26 09:38:15 5674

原创 稀疏矩阵

稀疏矩阵是矩阵中非零元素的个数远远小于矩阵元素的总数,并且非零元素的分布没有规律,通常认为非零元素比上矩阵所有元素的值小于等于0.05时,则称该矩阵为稀疏矩阵(sparse matrix);与之相区别的是,如果非零元素的分布存在规律(如上三角矩阵、下三角矩阵、对角矩阵),则称该矩阵为特殊矩阵。   一个稀疏矩阵中有许多元素等于零,这便于矩阵的计算和保存.如果Matlab把一个矩阵当作稀疏矩阵,那么

2016-05-26 09:38:13 750

原创 二叉树的先序、中序、后序、层序递归及非递归遍历

二叉树是一种树形结构,它每个结点至多只有两棵子树(即二叉树中不存在度大于2的结点)。所谓度是结点拥有的子树数。650) this.width=650;" src="http://s1.51cto.com/wyfs02/M02/7F/31/wKioL1cWRZ_g1ddLAAAn7bdu_34291.png" title="C47G6G`N73Y9V`4O)FFYDBN.png " alt="wKi

2016-05-26 09:38:10 515

原创 广义表

广义表(Lists,又称列表)是一种非线性的数据结构,是线性表的一种推广。即广义表中放松对表元素的原子限制,容许它们具有其自身结构。650) this.width=650;" src="http://s4.51cto.com/wyfs02/M00/7F/2A/wKioL1cVuxqzk4guAABOfPTUY_Y086.png" title="QQ截图20160419125358.png" alt

2016-05-26 09:38:07 442

原创 单链表的增删查 逆置 倒数第k个节点等问题

对于单链表而言,它没有双链表那么复杂,它只有头节点,尾节点,节点数据,后继指针。在下面本人实现了 单链表的 增   删   插  查  改。    #include#include#include#includetypedef int Datatype;typedef struct SListNode{ Datatype data; struct SListNode*next;

2016-05-26 09:38:04 217

原创 实现简单的迷宫

我们知道栈的特点是:后进先出(First In Last Out);也就是说只能在栈的尾部进行压栈和出栈,而且出栈的时候只能从最后一个数据开始。  所以我们利用栈这个特点,来实现这个迷宫。在这之中我们要采用“回溯”的方法去处理当遇到路径不通的情况。  原理:每找到一个通路,就将这个数据压栈,这样当前位置的上一个位置就位于栈的顶部,假如当前位置的上下左右都找不到通路的时候,就开始回溯,也就是开始从来

2016-05-26 09:38:01 362

ftptest.zip

使用MFC实现 对文件夹进行zip压缩并通过FTP进行文件的上传 编译环境vs2005(存在编译好的的程序及其源代码)

2019-06-11

c++ rabbitmq, vs2005编译通过 SimpleAmqpClient

c++ rabbitmq,使用vs2005编译通过的 SimpleAmqpClient 可以参考这个 https://blog.csdn.net/csm201314/article/details/76379160 不错的

2018-04-10

rabbitmq的使用、 SimpleAmqpClient编译 有写好的程序

rabbitmq的使用 使用cmake编译过程我有写成文档 有封装好的 也有源代码 可以自己封装 还有rabbit安装所需的软件(ps 唉 缺积分)

2018-04-09

空空如也

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

TA关注的人

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