10 2013 档案

摘要:转载网上找到的一篇双缓冲的文章,很好用。http://www.cnblogs.com/piggger/archive/2009/05/02/1447917.html_______________________________________________________________________显示图形如何避免闪烁,如何提高显示效率是问得比较多的问题。而且多数人认为MFC的绘图函数效率很低,总是想寻求其它的解决方案。MFC的绘图效率的确不高但也不差,而且它的绘图函数使用非常简单,只要使用方法得当,再加上一些技巧,用MFC可以得到效率很高的绘图程序。我想就我长期(呵呵当然也只有2年多) 阅读全文
posted @ 2013-10-29 23:13 xingrun 阅读(6561) 评论(0) 推荐(0)
摘要:http://hi.baidu.com/csacer/item/37cd6ac2dec18d360831c6a7在写程序时,如果包含了标题栏,但是没有包含最大化按钮或者最小话按钮,那么人工用ShowWindow(SW_MAXIMIZE),窗口会盖住任务栏,并且窗口最大化后还可以拖动!解决窗口最大化可以拖动的问题就是在最大化时不让其拖动,只要响应WM_NCLBUTTONDOWN时判断是否最大化IsZoomed如果是则直接返回就OK!解决遮住任务栏就是重载WM_GETMINMAXINFO:void CTabDlg::OnGetMinMaxInfo(MINMAXINFO FAR* lpMMI){// 阅读全文
posted @ 2013-10-29 23:09 xingrun 阅读(1164) 评论(0) 推荐(0)
摘要:二维数组的存储方式是和一维数组没什么区别,但是用二维数组做参数,它的形参该怎样写?要注意的是:函数中的形参其实就相当于一个声明,并不产生内存分配,形参的目的就是要让编译器知道函数参数的数据类型。正确的是:void Func(int array[3][10]);void Func(int array[][10]);可以省略第一维的大小错误的是void Func(int array[][].这样的用法只能在初始化时可以用);这样写也是错误:void Func(const int m,const int n,int array[m][n]);或void Func(int m,int n,int ar 阅读全文
posted @ 2013-10-29 15:38 xingrun 阅读(675) 评论(0) 推荐(0)
摘要:本文转自:http://hi.baidu.com/%C3%A8%D1%DB%D3%E3/blog/item/9d947e1b2b05555742a9adfd.html/cmtid/9872c2260129923cc9955905 针对openCV中,隐蔽的内存泄露,大家需要重视,拯救为数不多的内存,拯救应用程序的速度 在做项目的过程中,使用OpenCV经常会出现一些内存泄露问题,自己编写的程序出现问题还情有可原,但若是库函数调用和使用时出现,却很令我恼火。花了好长时间和实践的经验告诉我应该客服它。下面把一些检测出的问题进行化解。(可能是水平不够,这些函数使用不当,望高手指点) cvLoadIm 阅读全文
posted @ 2013-10-28 16:25 xingrun 阅读(962) 评论(0) 推荐(0)
摘要:类型理解 LPCTSTR类型: L表示long指针 这是为了兼容Windows 3.1等16位操作系统遗留下来的,在win32中以及其他的32位操作系统中, long指针和near指针及far修饰符都是为了兼容的作用。没有实际意义。 P表示这是一个指针 C表示是一个常量 T表示在Win32环境中, 有一个_T宏 STR表示这个变量是一个字符串详细释义这个宏用来表示你的字符是否使用UNICODE, 如果你的程序定义了UNICODE或者其他相关的宏,那么这个字符或者字符串将被作为UNICODE字符串,否则就是标准的ANSI字符串。 所以LPCTSTR就表示一个指向常固定地址的可以根据... 阅读全文
posted @ 2013-10-28 16:14 xingrun 阅读(876) 评论(0) 推荐(0)
摘要:GetBuffer()主要作用是将字符串的缓冲区长度锁定,releaseBuffer则是解除锁定,使得CString对象在以后的代码中继续可以实现长度自适应增长的功能。CString ::GetBuffer有两个重载版本:LPTSTR GetBuffer( );LPTSTR GetBuffer(int nMinBufferLength);在第二个版本中,当设定的长度小于原字符串长度时,nMinBufLength = nOldLen,该参数会被忽略,不分配内存,指向原CString;当设定的长度大于原字符串本身的长度时就要重新分配(reallocate)一块比较大的空间出来。而调用第一个版本时, 阅读全文
posted @ 2013-10-28 16:10 xingrun 阅读(586) 评论(0) 推荐(0)
摘要:SetWindowPos即使里面使用的是一样的矩形参数,有时候SetWindowPos还是会改变窗口的大小,真是坑爹!!!MoveWindow就不会改变mark一下 阅读全文
posted @ 2013-10-27 17:16 xingrun 阅读(571) 评论(0) 推荐(0)
摘要:S先生、P先生、Q先生他们知道桌子的抽屉里有16张扑克牌: 红桃A、Q、4 黑桃J、8、4、2、7、3 草花K、Q、5、4、6 方块A、5 约翰教授从这16张牌中挑出一张牌来,并把这张牌的点数告诉 P先生,把这张牌的花色告诉Q先生。这时,约翰教授问P先生和Q 先生:你们能从已知的点数或花色中推知这张牌是什么牌吗? 于是,S先生听到如下的对话: P先生:我不知道这张牌。 Q先生:我知道你不知道这张牌。 P先生:现在我知道这张牌了。 Q先生:我也知道了。 听罢以上的对话,S先生想了一想之后,就正确地推出这张牌是什么牌。 请问:这张牌是什么牌?答案:方块5解... 阅读全文
posted @ 2013-10-20 16:08 xingrun 阅读(4276) 评论(0) 推荐(0)
摘要:一道考验你设计能力的C++编程题http://www.cppblog.com/weiym/archive/2012/06/12/178472.html 阅读全文
posted @ 2013-10-19 22:59 xingrun 阅读(132) 评论(0) 推荐(0)
摘要:KMP字符串模式匹配详解http://www.cppblog.com/oosky/archive/2006/07/06/9486.html 阅读全文
posted @ 2013-10-19 21:53 xingrun 阅读(174) 评论(0) 推荐(0)
摘要:C++中的struct对C中的struct进行了扩充,它已经不再只是一个包含不同数据类型的数据结构了,它已经获取了太多的功能。struct能包含成员函数吗? 能!struct能继承吗? 能!!struct能实现多态吗? 能!!!既然这些它都能实现,那它和class还能有什么区别?最本质的一个区别就是默认的访问控制:默认的继承访问权限struct是public的,class是private的。你可以写如下的代码:struct A{ char a;};struct B : A{ char b;};这个时候B是public继承A的。如果都将上面的struct改成class,那么B是private继承 阅读全文
posted @ 2013-10-19 10:29 xingrun 阅读(493) 评论(0) 推荐(0)
摘要:1.有四个操作符不允许重载,它们是:: .* . ?:2.程序员只能为类类型或枚举类型的操作数定义重载操作符3.除了operator()之外,对其他重载操作符提供缺省实参都是非法的4.c++要求,=,[],()和->四个操作符必须被定义为类成员操作符,否则会编译错误5.操作符->被重载为一元操作符,即它没有参数。比如如下代码:class Aptr{public: A* operator->(){return ptr;}};Aptr p;那么就可以用p->a;来访问类A的成员变量a。6.operator new()和new表达式的区别。c++primer上多次提到new操 阅读全文
posted @ 2013-10-16 16:53 xingrun 阅读(334) 评论(0) 推荐(0)
摘要:函数指针数组的定义方法,有两种:一种是标准的方法;一种是蒙骗法。第一种,标准方法:{分析:函数指针数组是一个其元素是函数指针的数组。那么也就是说,此数据结构是是一个数组,且其元素是一个指向函数入口地址的指针。根据分析:首先说明是一个数组:数组名[]其次,要说明其元素的数据类型指针:*数组名[].再 次,要明确这每一个数组元素是指向函数入口地址的指针:函数返回值类型 (*数组名[])().请注意,这里为什么要把“*数组名[]”用括号扩起来呢?因为圆括号和数组说明符的优先级是等同的,如果不用圆括号把指针数组说明 表达式扩起来,根据圆括号和方括号的结合方向,那么 *数组名[]() 说明的是什么呢?是 阅读全文
posted @ 2013-10-16 16:39 xingrun 阅读(6095) 评论(0) 推荐(0)
摘要:sizeof()功能:计算数据空间的字节数1.与strlen()比较strlen()计算字符数组的字符数,以"\0"为结束判断,不计算为'\0'的数组元素。而sizeof计算数据(包括数组、变量、类型、结构体等)所占内存空间,用字节数表示。2.指针与静态数组的sizeof操作指针均可看为变量类型的一种。所有指针变量的sizeof 操作结果均为4。注意:int *p; sizeof(p)=4; 但sizeof(*p)相当于sizeof(int);对于静态数组,sizeof可直接计算数组大小;例:int a[10];char b[]="hello&qu 阅读全文
posted @ 2013-10-16 16:06 xingrun 阅读(300) 评论(0) 推荐(0)
摘要:判断有向图是否存在回路,除了可以利用拓扑排序方法外,还可以利用______。A.求关键路径的方法B.求最短路径的Dijkstra方法C.深度优先遍历算法D.广度优先遍历算法所有的考研数据结构参考书给出的答案都是C,但我觉得答案C是错误的,没有一个是正确的。解释:判断有向图是否存在回路可以使用拓扑排序,这毫无疑问。但是深度优先遍历算法并不能判断是否存在回路,它只有在有向图不存在回路的情况下,使用DFS得到逆向的拓扑有序序列而已,这里的条件是“不存在回路”,而不是用来判断“是否存在回路”,所以可以利用DFS进行拓扑排序,是进行拓扑排序的一种方式,而且是在不存在回路的情况下才能使用的一种拓扑排序方式 阅读全文
posted @ 2013-10-07 17:35 xingrun 阅读(14241) 评论(1) 推荐(0)