- 博客(29)
- 收藏
- 关注
转载 位运算
1.判断一个int型变量a是奇数还是偶数if((a&1) == 1) //奇数2.判断一个正整数是不是2的幂if(a&(a-1) == 0) //是3.特定位取反对前4位取反,则 a^154.位段是把一个字节中的二进位划分为几个不同的区域,并说明每个区域的位数。对于一个位段,必须存储在同一个字节中,不能跨字节存...
2014-06-29 11:23:00
94
转载 线性表
特点唯一一个头节点唯一一个尾节点除头节点外,均只有一个前驱节点除尾节点外,均只有一个后继节点顺序表插入平均移动步数 n/2删除平均移动步数 (n-2)/2查找时间代价 O(n)二分查找时间代价 O(log2n)适合整块存储有序数据,不适合频繁插入删除以及动态扩展。链接表查找时间代价 O(n)...
2014-06-06 19:03:00
89
转载 GDI映像
窗口与视口将窗口、视口想象为两块叠放的透明玻璃“窗口玻璃”在上,“视口玻璃”在下我们以“窗口玻璃”坐标系为准,映射到“视口玻璃”上画图原点默认,两块玻璃的画图原点都在左上角,x轴向右,y轴向下当使用 SetWindowOrgEx 时,相当于在“窗口玻璃”相应坐标处打个原点孔当使用 SetViewportOrgEx 时,相当于在“视口玻璃”相应坐标处打个原点孔...
2014-06-06 18:59:00
135
转载 数据结构
数据结构计算机中表示(存储)的、具有一定逻辑关系和行为特征的一组数据。三要素逻辑结构:集合、线性、树形、复杂。存储结构:顺序、链接、散列、索引。操作转载于:https://www.cnblogs.com/TaoyzDream/p/3722898.html...
2014-05-12 10:12:00
79
转载 显式转换
dynamic_cast支持运行时识别指针或引用所指向的对象。从基类指针获得派生类行为最好的办法是<font color="blue">通过虚函数</font>。但是在某些情况下,无法使用虚函数,就需要手动显示转换。如果转换指针失败,则置0;如果转换引用失败,则抛出bad_cast异常。 1 if(Extend *ptr = dyn...
2014-04-29 17:30:00
62
转载 内联函数
当类中内联函数仅该类调用,则内联函数的定义既可以放在.h也可以放在.cpp。当类中内联函数被外部调用,则内联函数的定义只能放在.h中,否则出现链接错误。“inline成员函数的定义必须在调用该函数的每个源文件中是可见的。” ---- 《C++ Primer 4》P374转载于:https://www.cnblogs.com/TaoyzDream/p/3699746.html...
2014-04-29 17:29:00
89
转载 函数重载
疑问void max(const int x, const int y);void max(int x, int y);为什么报错:重复声明解释“这种差异并不影响传递至函数的对象...其原因在于实参传递的方式。复制形参时并不考虑形参是否为const---函数操纵的只是副本。函数无法修改实参...这两种形参并无本质区别"---《C++ Primer》第四版 7.8 重载...
2014-04-29 17:28:00
95
转载 虚函数表
问 1 class B 2 { 3 public: 4 virtual void fun() 5 { 6 printf("fun in B\n"); 7 } 8 void b1() 9 {10 printf("b1 in B\n");11 }...
2014-04-29 17:27:00
54
转载 更新窗口
InvalidateRectrect是你指定要刷新的区域,此区域外的客户区域不被重绘,这样防止客户区域的一个局部的改动,而导致整个客户区域重绘而导致闪烁如果最后的参数为TRUE,则还向窗体发送WM_ERASEBKGND消息,使背景重绘,当然在客户区域重绘之前。UpdateWindow在发送之前通过GetUpdateRect判断有无可绘制的客户区域如果没有,则不发送WM...
2014-04-29 10:31:00
123
转载 类中的回调函数
失败原因由于类的成员函数有隐含的this指针传递,从而导致一个CALLBACK型的成员函数安装时函数参数个数不匹配。解决方法1)将回调函数挪出类外,并声明为友元2)将回调函数生命为静态成员函数(使用回调函数的某个参数传递当前对象的this指针)转载于:https://www.cnblogs.com/TaoyzDream/p/3698665.html...
2014-04-29 10:30:00
198
转载 GetMessage的第二个参数
疑问为什么GetMessage的第二个参数制定为hwnd后,应用程序无法退出?解释MSDN中指出:当第二个参数为NULL时,GetMessage取得那些属于调用线程的窗口的消息和通过PostThreadMessage函数投递到调用线程的线程消息。GetMessage需要检索到WM_QUIT返回一个FALSE结束消息循环,而WM_QUIT是通过PostQuitMess...
2014-04-29 10:29:00
215
转载 左键拖动窗口
思路1)拦截 WM_NCHITTEST2)判断可拖动区域3)return HTCAPTION;引申可以拦截WM_NCHITTEST消息之后的 WM_NCLBUTTONDOWN消息,进行进一步控制。但注意 WM_NCLBUTTONUP无法拦截到,除非用HOOK转载于:https://www.cnblogs.com/TaoyzDream/p/3698657.h...
2014-04-29 10:27:00
156
转载 响应非正常退出
思路1)拦截 WM_QUERYENDSESSION 消息2)返回TRUE,继续执行关机or注销 返回FALSE,则终止3)lParam 为 ENDSESSION_LOGOFF 时为注销用户转自:http://www.cnblogs.com/likebeta/archive/2012/03/31/2426632.html谢谢分享转载于:https://www.cnblog...
2014-04-28 12:10:00
130
转载 COMMAND消息
WM_COMMAND点击菜单、加速键、一些子窗体(对话框中的按钮或工具栏中的按钮,控件发通知消息给父窗体)后系统都会向它们所属的窗体发送WM_COMMAND消息。WM_COMMAND消息中有两个参数,wparam、lparam,定义如下:wParam高两个字节通知码(菜单的通知码为0;加速键的通知码为1)...
2014-04-28 12:01:00
141
转载 窗口样式
调整CreateWindow函数里窗口样式参数效果一:无标题栏可改变大小WS_POPUPWINDOW | WS_SIZEBOXorWS_POPUPWINDOW | WS_THICKFRAME注:拦截WM_GETMINMAXINFO,禁止改变大小lpMinMaxInfo->ptMinTrackSize.x=lpMinMaxInfo->p...
2014-04-27 19:23:00
127
转载 获取窗口实例句柄
方法一GetWindowLong(hwnd, GWL_HINSTANCE);获取该窗口句柄做用的实例句柄方法二WM_CREATE lpcs = (LPCREATESTRUCT) lParam; lpcs->hInstance;转载于:https://www.cnblogs.com/TaoyzDream/p/3695059.html...
2014-04-27 19:21:00
341
转载 输出函数
1.wsprintf系列函数无法正确处理浮点数sprintf 可以处理浮点数2.注意Unicode下,各种函数变体注:根据测试,实际编程中,当使用_vsntprintf函数时,会提示错误,用_vsntprintf_s替换即可转载于:https://www.cnblogs.com/TaoyzDream/p/3695057.html...
2014-04-27 19:20:00
81
转载 窗口创建及消息循环
窗口创建1. 自定义窗口类别WNDCLASS2. 注册窗口类RegisterClass3. 创建窗口 CreateWindow/CreateWindowEx WM_CREATE4. 显示窗口ShowWindow...
2014-04-27 19:19:00
157
转载 函数对象
函数对象定义了函数调用操作符的类,其对象常称为函数对象,即它们是行为类似函数的对象。其中函数调用操作符必须定义为成员函数。一个类可以定义函数调用操作符的多个版本,由形参数目和类型加以区别。1 class A2 {3 public:4 int operator()(int n)5 {6 return...
2014-04-27 11:45:00
53
转载 默认构造函数和拷贝构造函数
构造函数构造函数包括默认构造函数、拷贝构造函数和一般构造函数。在编程时,如果程序员不显式声明和定义上述函数,编译器将自动产生4个public inline的默认函数。A(); // 默认构造函数A(const A&); // 拷贝构造函数A& operator=(c...
2014-04-25 11:22:00
261
转载 隐式转换
隐式转换C++中,一个参数的构造函数(或者除了第一个参数外其余参数都有默认值的多参构造函数),承担了两个角色构造器默认且隐含的类型转换操作符有时候在我们写下如 AAA = XXX,且XXX的类型正好是AAA单参数构造器的参数类型,这时候编译器就自动调用这个构造器,创建一个AAA的对象。这样看起来好象很酷,很方便。但在某些情况下,却违背了我们(程序员)的...
2014-04-25 11:20:00
113
转载 文件读写
1.以out模式打开,文件数据会清空。2.通过判断fstream对象是否为true,来确定是否打开成功。1 fstream fOut("test", fstream::trunc);2 if(fstream)3 {4 // 打开成功5 }View Code3.fstream默认以in和out同时打开,文件...
2014-04-24 11:39:00
67
转载 C++标准库与STL的关系
C++标准库C++标准库是std命名空间中的所有内容,就是那些不带.h的头文件,如<cstdio>、<iostream>。STL标准模版库(Standard Template Library)它是一个可复用的组件库,其中包含了很多实用的算法和数据结构。STL是一个泛型思维的集中体现。区别1)C++标准库主要包含3部分:STL、IO流及本地化...
2014-04-22 17:05:00
126
转载 可变参数的实现
实现类似printf的可变参数,只需要5步:1)#include <stdarg.h>2)在函数里定义一个VA_LIST型的变量,这个变量是指向参数的指针;3)用VA_START宏初始化变量刚定义的VA_LIST变量;4)用VA_ARG依次返回可变的参数,VA_ARG的第二个参数是你要返回的参数的类型 如果我们不需要一一详解每个参数,只需要将可变列...
2014-04-21 13:26:00
58
转载 文本文件和二进制文件
相同点文本文件和二进制文件在物理上都是以二进制(01)存储的。不同点·写入以文本方式写文件(w/w+),遇到'\n'字符时,自动转换成'\r''\n',变成2个字符再存以二进制方式写文件(wb/wb+),遇到'\n'时,不转换,直接存该字符当写入的数据中有'\n'时,文本方式写文件速度要慢(有转换),写的文件要大(多了'\r')不同点·读取以文本方式读文件(r...
2014-04-21 11:12:00
105
转载 关于负数补码的求解
方法一:有公式的:要求x为负数 [-x]补=2的8次方-|-x|所以-128的补码=256-|-128|=128=80H方法二:直接由原码求补码(1)正数的原码=补码(2)负数:先写出负数绝对值的原码,再求反加一所以—128的绝对值的原码为80H,求反为0111 1111,再加一为1000 0000,就是80H方法三:(1)将符号位变为 0(2)求反,加一注:1)+0 -0 ...
2014-04-19 21:59:00
885
转载 二维数组的行列指针
行指针原理: 我们现在想定义一个指针,使得这个指针有这样的特性—— 指针 p指向arr[0], 指针 p+1 指向arr[1] ,指针 p+2指向arr[2], 也就是指针每移动一个单位的地址就指向下一个一维数组,那么这个指针必须满足下面二个条件:1、必须是整型 2、必须每移动一个单位的地址时实际上移动一个一维数组的长度即3个整型量。 int data[...
2014-04-19 21:56:00
319
转载 复杂类型的解读
复杂类型的定义在系统编程时往往是必要的,因此我们需要掌握,至少是理解构造复杂数据类型的基本方法。变量定义的核心是标识符,解读变量类型要从标识符开始,从内向外,并结合优先级,一步步解读。1.被()括起来的部分2.后缀操作符3.前缀操作符4.在类型说明符最左端的基本类型或已定义的构造类型[]和()的优先级高于*的优先级例子:1. int *tab[13]...
2014-04-19 21:52:00
135
转载 单斜杠'\'的思考
单斜杠 \ 的ASCII码为 92 是实际存在的字符而在字符表示的时候,必须写成'\\',字符串中也必须写成"\\",否则编译不通过表示的时候看似两个字符,但是实际的存储位数还是8位,一个字节,所以不要弄混。当我们想要表示一个路径时,手动的将\ 变成\\就可以了。转载于:https://www.cnblogs.com/TaoyzDream/p/3675610.html...
2014-04-19 21:45:00
112
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人