构造函数中抛出的异常
构造函数中抛出的异常 1、标准C++中定义构造函数是一个对象构建自己,分配所需资源的地方,一旦构造函数执行完毕,则表明这个对象已经诞生了,有自己的行为和内部的运行状态,之后还有对象的消亡过程(析构函数的...
getchar()知多少?
getc():调用方式:int getc(FILE *stream)它返回指定输入流stream的当前位置的下一个字符,并增加文件的位置指示器.getch():调用方式:int getch(void)getch()从控制台读取一个字符,但不把该字符显示在屏幕上,也就是不...
避免头文件重复定义
为什么会出现类重复定义的错误呢?请读者仔细查看EX10.cpp文件,在这个文件中包含了animal.h和fish.h这两个头文件。当编译 器编译EX10.cpp文件时,因为在文件中包含了animal.h头文件,编译器展开这个头文件,知道ani...
select 函数详解
Select在Socket编程中还是比较重要的,可是对于初学Socket的人来说都不太爱用Select写程序,他们只是习惯写诸如connect、 accept、recv或recvfrom这样的阻塞程序(所谓阻塞方式block,顾名思义,就是进程或是线程执...
C++临时对象
书归正传,我们知道在C++的创建对象是一个费时,费空间的一个操作。有些固然是必不可少,但还有一些对象却在我们不知道的情况下被创建了。通常以下三种情况会产生临时对象: 1,以值的方式给函数传参;...
trie树
Trie树既可用于一般的字典搜索,也可用于索引查找。对于给定的一个字符串a1,a2,a3,...,an.则采用TRIE树搜索经过n次搜索即可完成一次查找。不过好像还是没有B树的搜索效率高,B树搜索算法复杂度为logt(n+1/2).当t趋...
动态规划
背包问题一直是动态规划中的经典问题。这个问题又分成01背包,完全背包,多重背包,分组背包等等。。我在这里只记录下01背包(0-1knapsack)和完全背包(unbounded knapsack)。背包问题的简单描述就是有一个背包和一堆...
字节对齐
一、什么是对齐,以及为什么要对齐:1. 现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定变量的时候经常在特定的内存地址访问,这就需要...
位运算总结
位运算在网络中运用是相当多的,它的操作速度也很快,所以有必要总结和学习一下位运算应用口诀 清零取反要用与,某位置一可用或 若要取反和交换,轻轻松松用异或 移位运算 要点 1 它们都是双目运算符,两个运算分量...
IOCP 文件拷贝
IOCP类/******************************************************************************Module: IOCP.hNotices: Copyright (c) 2007 Jeffrey Richter & Christophe NasarrePurpose: This class wraps an I...
函数名作为参数传递 与 回调函数
成员函数名不能作为参数传递,否则会发生错误,因为里面隐藏着一个this 指针回调函数,就是由你自己写的。你需要调用另外一个函数,而这个函数的其中一个参数,就是你的这个回调函数名。这样,系统在必要的时候,就...
C/C++运行时库 解释
I. CRTCRT(C/C++ Runtime Library)是支持C/C++运行的一系列函数和代码的总称。虽然没有一个很精确的定义,但是可以知道,你的main就是它负责调用的,你平时调用的诸如strlen、strtok、time、atoi之类的函数也是它提...
C Runtime Library来历, API, MFC, ATL关系
CRT原先是指Microsoft开发的C Runtime Library,用于操作系统的开发及运行。后来在此基础上开发了C++ Runtime Library,所以现在CRT是指Microsoft开发的C/C++ Runtime Library。在VC的CRT/SRC目录下,可以看到CRT的...
CreateThread()、_beginthread()以及_beginthreadex()联系与区别
联系: CreateThread、_beginthread和_beginthreadex都是用来启动线程的。 区别: _beginthread是_beginthreadex的功能子集,_beginthreadex是微软的C/C++运行时库函数,CreateThread是操作系统的函数。虽然_begi...
多线程数据采集
#define MAXBUFQUEUE 8 struct BUFFER_ITEM { LPBYTE Buffer; HANDLE hFinishDo...
CString,int,string,char*之间的转换
<C++标准函数库>中说的 有三个函数可以将字符串的内容转换为字符数组和C—string 1.data(),返回没有”\0“的字符串数组 2,c_str(),返回有”\0“的字符串数组 3,copy() .....................
strlen与sizeof的区别
strlen与sizeof的区别1.sizeof操作符的结果类型是size_t,它在头文件中typedef为unsigned int类型。该类型保证能容纳实现所建立的最大对象的字节大小。 2.sizeof是算符,strlen是函数。 3.sizeof可以用类...
MFC中OnDraw与OnPaint的区别 (转载)
MFC中OnDraw与OnPaint的区别 OnPaint是WM_PAINT消息的消息处理函数,在OnPaint中调用OnDraw,一般来说,用户自己的绘图代码应放在OnDraw中。 OnPaint()是CWnd的类成员,负责响应WM_PAINT消息。OnDraw()是CVIEW的成员...
RAII:C++资源管理的利器(转)
RAII惯用法:C++资源管理的利器RAII是指C++语言中的一个惯用法(idiom),它是“Resource Acquisition Is Initialization”的首字母缩写。中文可将其翻译为“资源获取就是初始化”。虽然从某种程度上说这个名称并没...
C++中动态创建和删除数组(new 和delete)
动态创建数组举例:int **t=new int *[3];//行for(int i=0;i<3;i++){t[i]=new int[5];//列}动态删除数组举例:for(int i=0;i<3;i++){delete[5]t[i];t[i]=NULL;}t=NULL;程序举例:#include <iost...