自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 CString与int、float之间的转换

CString to int: 如下:CString str = "123";int i;i = atoi(str);CString to float: 如下:CString str="1.2";float f;f = atof(str);int、float to CString: 如下:int i=15;float f=1.1;CString stri="",strf="";s

2016-10-09 15:09:28 23213 1

原创 机试小知识点(二)

知识点 1: char* ch = "123"; int a = atoi(ch);//字符串转换为整型 cout<<a<<endl;//123 int a2 = 456; char ch2[10]; itoa(a2, ch2, 10);//整型转换为字符串 cout<<ch2<<endl;//字符串456

2016-09-27 19:53:24 342

原创 C++中的重载、重写(覆盖)、隐藏

一、重载 (1)相同的范围(在同一个类中);(2)函数名字相同;(3)参数不同;(4)virtual关键字可有可无。 二、重写 覆盖是指派生类函数覆盖基类函数(1)不同的范围(分别位于派生类与基类);(2)函数名字相同;(3)参数相同;(4)基类函数必须有virtual关键字。三、隐藏 “隐藏”是指派生类的函数屏蔽了与其同名的基类函数(1)不同的

2016-09-26 17:27:14 359

原创 各种排序算法实现

/* 2016年7月7日20:30:37排序的目的:查找 排序是查找的前提(google搜索) 分类: 冒泡(稳定n^2) 插入(稳定n^2),从前往后依次插入到前面的有序部分,始终保持前面部分有序 选择(n^2),先从所有序列中选择最小的数字与第一个数字互换,再从余下的序列中寻找次最小值与第二个数字互换。。。 快排,先找第一个元素的确切位置,把

2016-09-22 16:43:53 277

原创 String 类的实现 以及 Strcpy、Strcat函数的实现

class Stringg{public: Stringg(const char *str = NULL); Stringg(const Stringg &other); ~Stringg(); Stringg & operator = (const Stringg& other);private: char *m_data;};Stringg::Str

2016-09-20 22:04:02 741

原创 malloc和new的区别

动态分配内存 new/delete,malloc/free,必须成对使用,否则内存泄露1、malloc()到底从哪里得到了内存空间? 答案是从堆里面获得空间。也就是说函数返回的指针是指向堆里面的一块内存。操作系统中有一个记录空闲内存地址的链表。当操作系统收到程序的申请时,就会遍历该链表,然后就寻找第一个空间大于所申请空间的堆结点,然后就将该结点从空闲结点链表中删除,并将该结点的空间分配给程序。

2016-09-13 11:10:49 236

原创 折半查找

非递归算法int binary_search(int* a, int len, int key){ int low = 0; int high = len-1; int mid; while (low <= high) { mid = (low+high)/2; if (key < a[mid]) high

2016-09-13 10:28:49 204

原创 C++虚函数表

http://blog.csdn.net/haoel/article/details/1948051///虚函数表保存了虚函数的地址,虚函数表相当于一个指针数组class Base {private://非公有虚函数同样会存在子类的虚函数表中 int num; void real() {cout<<"Base::real"<<endl;} virtual void f()

2016-09-11 22:41:59 203

原创 机试小知识点(一)

32位操作系统有32根地址线,每根两种状态0/1,表示2的32次方个内存单元,每个内存单元占1个字节(OS只能对字节进行操作,位操作用位操作符),1G = 2^10M,1M = 2^10K,1K = 2^10B,2^32B = 4*2^10*2^10*2^10 = 4G知识点 1:class Base{public: virtual ~Base(){cout<<"~Base"<<endl

2016-09-11 22:17:18 560

原创 虚继承/虚基类

如果一个派生类D有多个直接基类B、C,而这些直接基类又有一个共同的基类A 代码 1:class A{public: A(){cout<<"A构造函数!"<<endl;} void out(){cout<<"A out"<<endl;} int flag;};class B : public A{public: B(){cout<<"B构造函数!"<<en

2016-09-11 18:08:22 333

原创 关于构造函数的理解

代码 1(父类和子类都自定义构造函数):class father {public: father(int agee):age(agee) { cout<<"父类构造函数!"<<age<<endl; } int age;};class son : public father{public: son(int agee):father(a

2016-09-10 10:36:22 717

原创 编辑框内容保存到txt,自动加载txt到编辑框

保存到IP和ADDR到 txtCFileDialog dlg(FALSE,_T("txt"),_T("addr.txt")); CString strAddr, strPort; CString strFile = dlg.GetPathName();//获取完整路径 GetDlgItemText(IDC_ADDR , strAddr);//获取指定ID的编辑框内容 G

2016-09-09 17:28:12 2858 1

转载 前缀、中缀、后缀表达式

前缀、中缀、后缀表达式它们都是对表达式的记法,因此也被称为前缀记法、中缀记法和后缀记法。它们之间的区别在于运算符相对与操作数的位置不同:前缀表达式的运算符位于与其相关的操作数之前;中缀和后缀同理。举例: (3 + 4) × 5 - 6 就是中缀表达式 - × + 3 4 5 6 前缀表达式 3 4 + 5 × 6 - 后缀表达式中缀表达式(中缀记法) 中缀表达式是一种通用的算术

2016-09-09 16:53:22 168

原创 MFC文档视图结构

doc文档类,view视图类,MainFrm框架窗口类1、文档对象 用于管理和维护数据,包括保存数据、取出数据以及修改数据等操作,在数据被修改以后,文档可以通知其对应的所有视图更新显示。2、视图对象 将文档中的数据可视化,负责从文档对象中取出数据显示给用户,并接受用户的输入和编辑,将数据的改变反映给文档对象。视图充当了文档和用户之间媒介的角色。3、框架窗口类 一个文档可能有多个视图界面,这就需要有框

2016-09-09 16:50:58 358

原创 单文档程序添加OSG

1)设置包含目录、库目录和附加依赖项 2)复制MFC_OSG.h 和MFC_OSG.cpp到项目中 3)_View.h 中添加#include “MFC_OSG.h” 4)继续添加成员变量 public: cOSG* mOSG; HANDLE mThreadHandle; 5)_View.cpp 中添加消息WM_CREATE,在OnCre

2016-09-09 16:49:25 523

原创 模态对话框和非模态对话框

出现的问题: 在MFC单文档Ribbon界面添加按钮,点击打开对话框,对话框打开关闭后,再打开中断1、在单文档程序中添加模态对话框: a. 资源视图/Dialog 右键插入Dialog b. 类视图/项目名右键类向导,添加新对话框类(基类CDialogEx) c. 资源视图/Ribbon添加类别、面板以及按钮,右键按钮添加事件处理程序,类列表选择CMainFrame(

2016-09-09 16:47:38 1042 1

转载 螺旋矩阵

#include <iostream>#include <iomanip>using namespace std;// 输出螺旋矩阵void Matrix(int** matrix, int n){ //const int size = 10; // 矩阵大小 //int matrix[size][size] = {0}; int r = 0; int c =

2016-09-02 10:20:54 362

转载 C++中二维数组的动态创建与处理

C++中用new动态创建二维数组的格式一般是这样:TYPE (*p)[N] = new TYPE [][N];其中,TYPE是某种类型,N是二维数组的列数。采用这种格式,列数必须指出,而行数无需指定。在这里,p的类型是TYPE*[N],即是指向一个有N列元素数组的指针。还有一种方法,可以不指定数组的列数:int **p;p = new int*[10]; //注意,int*[10]表示一个有

2016-09-02 09:13:38 1195

转载 C++中的C_str()函数用法

C++中的C_str()函数用法语法: const char *c_str(); c_str()函数返回一个指向正规C字符串的指针常量, 内容与本string串相同. 这是为了与c语言兼容,在c语言中没有string类型,故必须通过string类对象的成员函数c_str()把string 对象转换成c中的字符串样式。 注意:一定要使用strcpy()函数 等来操作方法c_str()返回的

2016-06-29 15:20:34 571

转载 CString与char *互转总结

1 前言首先大家得清楚一件事,一般在网上提出问题的人大部分使用的都是VC,那么你就应该知道,在VC下编程,工程属性中有一属性Charecter Set属性,其值可以设置为Use Multi-Byte Charecter Set 和 Use Unicode Charecter Set 这两种选择,具默认情况下工程是采用了Use Unicode Charecter Set选项.如我使用的VS2010的工

2016-06-29 11:37:08 365

转载 GetWindowRect和GetClientRect

一:关于坐标  MFC中绘图时经常涉及到坐标计算,GetWindowRect和GetClientRect这两个函数,是获取逻辑坐标系中窗口或控件(其实也是窗口)大小和坐标的常用函数了,有什么不一样的?先说说什么叫逻辑坐标?讲到逻辑坐标,它相对的一个概念是设备坐标,是为了屏蔽掉不同设备属性差别而设置的抽象坐标系,说白了,就是独立于设备坐标的统一接口,程序员不需要去在具体的设备上进行绘图操作,而只需要在

2016-04-27 16:15:06 413

转载 MFC 打印调试的三种方法

在调试MFC程序时,我们经常需要查看特定位置变量的输出值。或者在某特定条件执行时,给出一个输出标识。 一般来说,有3种方法: 1) 调用TRACE(LPCTSTR lpszFormat, …)函数 在MFC中使用TRACE函数来打印输出结果却是非常方便,和在控制台程序中使用printf函数的使用方法和效果类似。不过有几点 需要注意:一,TRACE函数的输出是在Output窗口

2016-04-19 11:09:21 5731

转载 理解C++ dynamic_cast

在面向对象程序设计中,有时我们需要在运行时查询一个对象是否能作为某种多态类型使用。与Java的instanceof,以及C#的as、is运算符类似,C++提供了dynamic_cast函数用于动态转型。相比C风格的强制类型转换和C++ reinterpret_cast,dynamic_cast提供了类型安全检查,是一种基于能力查询(Capability Query)的转换,所以在多态类型间进行转换

2016-03-17 22:39:35 274

转载 OSG学习 GraphicsContext与窗口建立

GraphicsContext ,图形设备上下文。就像在使用OpenGL在win32的窗口里绘制的时候。曾使用的hrc = wglCreateContext(hdc)一样。创建一个图形设备上下文 ,然后使用wglMakeCurrent(hdc,hrc)设置当前使用的图形设备一样,在这之后,我们就可以使用OGL绘制图形一样。osg中的GraphicsContext 就是跟hrc一样的。

2016-03-04 11:27:00 2799 1

转载 vs2010 问题 >LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏

http://www.cnblogs.com/newpanderking/articles/3372969.html>LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏问题说明:当安装VS2012之后,原来的.NET 4.0会被替换为.NET 4.5。卸载VS2012时,不会恢复.NET 4.0。l 当VS201

2016-02-23 17:49:25 359

转载 运动目标检测__光流法

以下内容摘自一篇硕士论文《视频序列中运动目标检测与跟踪算法的研究》:1950年Gibson首先提出了光流的概念,光流(optical flow)法是空间运动物体在观测成像面上的像素运动的瞬时速度。物体在运动的时候,它在图像上对应点的亮度模式也在做相应的运动,这种图像亮度模式的表观运动就是光流。光流的研究就是利用图像序列中像素的强度数据的时域变化和相关性来确定各自像素位置的“运动”。光流表达

2016-01-16 22:20:35 3552

转载 利用OpenCV中提供的GPU模块

利用OpenCV中提供的GPU模块    目前,OpenCV中已提供了许多GPU函数,直接使用OpenCV提供的GPU模块,可以完成大部分图像处理的加速操作。    基本使用方法:在介绍OpenCV中GPU模块使用之前,先回顾下CUDA的一般使用方法,其基本步骤如下:1.主机代码执行;2.传输数据到GPU;3.确定grid,block大小;4.调用内核函数,GP

2016-01-15 10:52:42 800 1

转载 OpenCV之CUDA学习笔记

用OpenCV+CUDA图像并行处理相关的东西,希望由浅入深……先来看一下OpenCV背景建模算法的GPU测试样例:#include #include #include "opencv2/core.hpp"#include "opencv2/core/utility.hpp"#include "opencv2/cudabgsegm.hpp"#include

2016-01-15 10:44:23 989

转载 class CV_EXPORTS_W 定义浅析

我们转到CV_EXPORTS_W的定义,会发现定义如下#define CV_EXPORTS_W CV_EXPORTS1那CV_EXPORTS又是什么呢?我们转到CV_EXPORTS的定义,如下#if (defined WIN32 || defined _WIN32 || defined WINCE) && defined CVAPI_EXPORTS# define CV_EXP

2016-01-14 18:27:37 4289

原创 TCP/IP 网络数据封包和解包

服务器代码common.h#pragma once #define NET_PACKET_DATA_SIZE 1024 #define NET_PACKET_SIZE (sizeof(NetPacketHeader) + NET_PACKET_DATA_SIZE) * 10 #define SERVER_PORT 6000/// 网络数据包包头 struct

2016-01-05 12:01:00 3622

转载 Winsock开发网络通信程序的经典入门

对于许多初学者来说,网络通信程序的开发,普遍的一个现象就是觉得难以入手。许多概念,诸如:同步(Sync)/异步(Async),阻塞(Block)/非阻塞(Unblock)等,初学者往往迷惑不清,只知其所以而不知起所以然。   同步方式指的是发送方不等接收方响应,便接着发下个数据包的通信方式;而异步指发送方发出数据后,等收到接收方发回的响应,才发下一个数据包的通信方式。  阻塞套接字

2016-01-04 22:39:00 1458

转载 error C4996 & strcpy ,strncpy ,strlcpy的用法

strncpy()函数原型:extern char *strncpy(char *dest, char *src, int n);    用法:#include     功能:把src所指由NULL结束的字符串的前n个字节复制到dest所指的数组中。    说明:如果src的前n个字节不含NULL字符,则结果不会以NULL字符结束。        如果src的长度小于n个字节,

2016-01-03 15:38:47 2765

转载 error C2664:不能将参数 1 从“CString”转换为“const char *”

提示错误“error C2664: "gethostbyname": 不能将参数 1 从"CString"转换为"const char *"”。CString host;lpHost = gethostbyname(host);最快的解决办法:Since this function requires Ansi string, I think you

2016-01-03 15:37:33 10778

转载 VS2013MFC单文档- 为窗口添加启动页面

在VC6.0下可以直接添加组件来添加程序启动画面,但是VS却不行,我们要自己添加类来制作启动画面。1.新建或者导入一个ID为IDB_BITMAP1的位图;2.现在项目下新建一个类CSplashWnd,基类为CWnd;VS下添加启动画面" title="MFC VS下添加启动画面" style="margin:0px; padding:0px; border:0px; list-

2015-12-23 11:45:00 1758

转载 C++中delete和delete[]的区别

一直对C++中的delete和delete[]的区别不甚了解,今天遇到了,上网查了一下,得出了结论。做个备份,以免丢失。    C++告诉我们在回收用 new 分配的单个对象的内存空间的时候用 delete,回收用 new[] 分配的一组对象的内存空间的时候用 delete[]。 关于 new[] 和 delete[],其中又分为两种情况:(1) 为基本数据类型分配和回收空间;(2)

2015-10-20 16:06:33 278

转载 基类指针指向派生类对象

派生类对象也“是”基类对象,但两者不同。派生类对象可以当做基类对象,这是因为派生类包含基类的所有成员。但是基类对象无法被当做成派生类对象,因为派生类可能具有只有派生类才有的成员。所以,将派生类指针指向基类对象的时候要进行显示的强制转换,否则会使基类对象中的派生类成员成为未定义的。总结:基类指针和派生类指针指向基类对象和派生类对象的4中方法:1.  基类指针指

2015-10-19 17:55:20 5466 1

转载 auto_ptr智能指针

http://blog.csdn.net/effective_coder/article/details/8733652auto_ptr的设计动机:对于一般的常规指针,在动态分配内存时需要手动的delete掉所占内存,但是难免有疏忽的时候,那么将会对程序造成致命的危险,所以auto_ptr智能指针便应运而生,他本身是一个对象,因为具有常规指针的特点,所以叫做

2015-10-18 10:33:05 252

转载 C++中 const 的用法

http://blog.csdn.net/Eric_Jo/article/details/4138548

2015-10-08 09:00:51 299

转载 UINT 和 LPCWSTR 的转换

includeusing std::wstring;LPCWSTR to INT:LPCWSTR wstr = L"abc";wstring tempstr( wstr);int value = _wtoi( tempstr.c_str());INT to LPCWSTR:int value = 123;    wchar_t char[

2015-10-08 08:22:49 744

转载 (void**)&a

1、(void**)&a表示什么意思?答:强制类型转换取得变量的地址并且强制转换成无类型地址的指针,即一个指针,指向一个无类型地址的指针的地址。把 &a 指向的内存空间的内容转换为 void*将 &a 转换为一个指向 void* 类型的指针,即 (void* *)&a2、VOID ** ppbData,[out] VOID* pointer to a memory

2015-10-08 08:21:41 1049

空空如也

空空如也

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

TA关注的人

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