摘要:
冒泡排序是我学习的最早的排序算法。它很简单:遍历文件,如果临近的两个元素的顺序不对,那么就将两者交换,重复这样的操作直到整个文件排好序。一种实现算法:#include <iostream>#include <stdlib.h>using namespace std;template <typename Item>void compexch(Item &A,Item &B){ if (B<A) exch(A,B);}template <typename Item>void bubble(Item a[], int l, int 阅读全文
摘要:
插入排序 算法思路:和桥牌中类似,每次只考虑一张牌,将新来的牌插入已经排好序的牌中的适当的位置中。在计算机应用中,为了插入新数据,先将较大的数据项一个个向右移动,然后将新数据插入空位中。和选择排序算法一样,排序过程中当前数据项的左边是排好的,不过它们不是处于最后的位置上,因为之后它们可能还需要进行移动来为更小的数据腾出空间。当索引移到最右边时,数组就完全排序好了。一个高效的插入排序的实现:#include <iostream>#include <stdlib.h>using namespace std;template <typename Item>void 阅读全文
摘要:
从今天开始好好研究下排序算法,每一种排序算法都实现并分析。排序的基本知识:文件的排序,这些文件包括数据项(item)和键(key),键是数据项的一个小部分,用于控制排序。排序算法的目的是重新组合数据项,使其键根据一些已经定义好的排序规则整齐排列。如果被排序的文件适合放在内存中,则排序算法被称为内部排序,从磁盘中对文件进行排序,称之为外部排序。首先介绍的是一种最简单的排序算法。选择排序 算法步骤:首先选出数组中最小的项,将它和数组的第一个成员交换(假如按照升序排列),然后选出次小的项,将其与第二个成员交换。按照这种思路一直做下去,直到整个数组排列完成。实现源代码:#include <ios 阅读全文
摘要:
在Visual C++6.0的编程中,我们经常要使用许多功能,而在使用这些功能的时候需要使用一些小技巧。下面就是我在编写初级MFC程序的时候总结的部分小知识,供大家参考。1.动态改变窗口的图标:HICON hIcon=AfxGetApp()->LoadIcon (IDI_ICON1);ASSERT(hIcon);AfxGetMainWnd()->SendMessage(WM_SETICON,TRUE,(LPARAM)hIcon);2.动态改变鼠标光标。用户可以使用Windows的标准光标形状,也可以建立自己的鼠标光标形状,方法是插入/新建或者导入已有的光标。SetCursor(Af 阅读全文
摘要:
今天实现了窗体呈现透明的显示,里面涉及到一些东西,写下来共享,其实很简单,不过以前自己不知道而已。首先创建一个基于对话框的应用程序框架,然后拖进一个Splider和一个edit控件,并分别给相应的空间添加相应的空间变量。这里的edit完全是为了显示用,没有实际的输入功能。主要涉及的代码在OnInitDalogSplider控件的响应函数中。然后再OnInitDialog中添加如下的初始化信息::SetWindowPos(m_hWnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOSIZE|SWP_NOMOVE); m_slide.SetRange(10, 255); m_s 阅读全文
摘要:
1.头文件:#include <bitset>4 P; U3 _# h# B6 Z2.声明一个容器:(a)声明一个指定位数的空容器(所有位设为0): bitset<int> bits;(b)声明一个指定位数并将指定的几个位初始化为相应值的容器: bitset<n> bits(int);9 d6 c* ?1 U8 }6 Z4 ` bitdet<int> bits(string&)总结:bitset模板类中类型参数传递容器的位数,而构造函数参数通过一个int或一个string&值来从右至左初始化容器中的相应值。$ `/ ?^+ Y3 阅读全文
摘要:
HBRUSH CAboutDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) { if ((pWnd->GetDlgCtrlID() == IDC_EDIT1) && (nCtlColor == CTLCOLOR_EDIT)) { COLORREF clr = RGB(255,0,0); pDC->SetTextColor(clr); //设置红色的文本 clr = RGB(0,0,0); pDC->SetBkColor(clr); //设置黑色的背景 m_brMine = ::CreateSolidBr 阅读全文
摘要:
VC中编程对于刚刚开始学习的同学,最大的障碍和问题就是消息机制和指针获取与操作。其实这些内容基本上是每本VC学习工具书上必讲的内容,而且通过MSDN很多问题都能解决。下面文字主要是个人在编程中指针使用的一些体会,说的不当的地方请指正。一般我们使用的框架是VC提供的Wizard生成的MFC App Wizard(exe)框架,无论是多文档还是单文档,都存在指针获取和操作问题。下面这节内容主要是一般的框架,然后再讲多线程中的指针使用。使用到的类需要包含响应的头文件。首先一般获得本类(视,文档,对话框都支持)实例指针this,用this的目的,主要可以通过类中的函数向其他类或者函数中发指针,以便于在 阅读全文
摘要:
在多文档MFC应用程序执行过程中,创建了多于一个的文档类、视图类、子框架类对象和一个主框架类、应用类对象。这些对象之间是通过一定的方式联系在一起的,在应用程序设计中,时常需要通过这些对象之间的关系来实现在文档、视图、框架类对象、应用程序类对象间相互引用和调用。如下: 1,视图类对文档类的使用 视图类对象的作用是在客户区显示文档类对象的内容,两者之间的调用最为常用。在视图类中,通过以下函数得到文档类对象的指针。在视图类CDrawView中可以找到一个函数: public: CDrawDoc* GetDocument(); 在视图类CDrawView的成员函数中,可以通过以下代码调用Ge... 阅读全文
摘要:
Document(文档)、View(视图)、Frame(框架)、App(应用)之间相互访问的方法。访问对象访问位置访问实现应用程序App任何位置①AfxGetApp();②在要使用应用程序App的文件中加入:extern CAApp theApp,然后直接使用全局的theApp变量。主框架窗口任何位置①AfxGetMainWnd();②AfxGetApp()->m_pMainWnd;视图框架类中GetActiveView();//当前的活动视图文档类中GetFirstViewPosition();//可以获取全部视图GetNextView();文档文档类中GetDocument();文当 阅读全文