自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

简单实用的c++快速排序模板类

(一)目标  在实际问题的解决过程中,我们发现,很多问题都可以归结为对数据的排序和查询。而查询的效率则在很大程度上依赖于排序的效率;尤其是在数据量达到海量级的时候。因此,设计一个有效的排序算法是至关重要的。本文设计了一个通用的c++ quicksort 模板类。通过简单的提供一个Data类,可以实现任意数据的快速排序算法,提高了开发效率。  (二)快速排序算法的思想  最基本的快速排序...

2009-04-15 17:30:00 51

C语言中的类模拟(C++编程思想)

   在面向对象的语言里面,出现了类的概念。这是编程思想的一种进化。所谓类:是对特定数据的特定操作的集合体。所以说类包含了两个范畴:数据和操作。而C语言中的struct仅仅是数据的集合。  1.实例:下面先从一个小例子看起  #ifndef C_Class   #define C_Class struct  #endif  C_Class A {   C_Class A *...

2009-04-15 17:29:00 41

高质量C++/C编程指南学习笔记(上)

高质量C++/C编程指南学习笔记(上)   《高质量C++/C编程指南》是 林锐 博士 写的,现在已经出书了。以下是我在学习中的一些笔记,贴给大家有空看看。  1、 关于版权和版本的声明  版权和版本的声明位于头文件和定义文件的开头。示例如下:  /** Copyright (c) 2001,上海贝尔有限公司网络应用事业部  * All rights reserved.  ...

2009-04-15 17:28:00 38

Win32页上的所有控件属性与方法

Win32页上的所有控件。该页控件是在32位Win系统中的一些基本控件,如果你选择开发CLX程序,则在控件面板上不会显示该页TTabControl属性 DisplayRect:只定该控件客户区的一个矩形HotTrack:设置当鼠标经过页标签时,它的字是否有变化。如果为True,是字会变成蓝色Images:为每个页标签添加一个图片MultiLine:如果总页标签的长度大于该控件的宽度时,是否允...

2009-04-15 17:00:00 62

高质量C++/C编程指南 -- 其它编程经验

使用const提高函数的健壮性看到const关键字,C++程序员首先想到的可能是const常量。这可不是良好的条件反射。如果只知道用const定义常量,那么相当于把火药仅用于制作鞭炮。const更大的魅力是它可以修饰函数的参数、返回值,甚至函数的定义体。const是constant的缩写,“恒定不变”的意思。被const修饰的东西都受到强制保护,可以预防意外的变动,能提高程序的健壮性。...

2009-04-14 18:21:00 40

高质量C++/C编程指南 -- 类的继承与组合

对象(Object)是类(Class)的一个实例(Instance)。如果将对象比作房子,那么类就是房子的设计图纸。所以面向对象设计的重点是类的设计,而不是对象的设计。对于C++程序而言,设计孤立的类是比较容易的,难的是正确设计基类及其派生类。本章仅仅论述“继承”(Inheritance)和“组合”(Composition)的概念。注意,当前面向对象技术的应用热点是COM和CORBA,...

2009-04-14 18:16:00 39

Delphi实现下载进程的动态显示

Delphi实现下载进程的动态显示  许多知名的下载软件中都有下载管理器,用一个TListView来显示下载的进程,你可以清楚的看到已经下载了多少,还有多少内容仍需下载,这样的控件,Delphi自身并未提供,但我们可以在TListView的基础之上加入进度条控件(TProgressBar)来实现这一功能,这样就能既能满足我们的实际需求,又不用“牺牲”口袋里白花花的银子,还能增加我们对控件嵌套的认识...

2009-04-13 18:23:00 53

vector介绍

vector介绍介绍std::vector,并且讨论它在STL中的算法和条件函数remove_if()。介绍这篇文章的目的是为了介绍std::vector,如何恰当地使用它们的成员函数等操作。本文中还讨论了条件函数和函数指针在迭代算法中使用,如在remove_if()和for_each()中的使用。通过阅读这篇文章读者应该能够有效地使用vector容器,而...

2009-04-12 10:10:00 63

漫谈C++ Builder多线程编程技术

摘 要:本文简单介绍了Windows环境下进行多线程编程的意义,重点讨论了C++Builder环境下开发多线程应用程序这一问题,并通过实现生产者-消费者问题,帮我们更好地理解同步概念及其实现方法。  关键词:多线程;同步;生产者-消费者;C++Builder   线程之可行性  在很多情况下,可能需要为程序创建线程。这里给出其中一些可能性:  (1)如果创建的是一个多文档接口(Mu...

2009-04-03 12:57:00 49

用C++ Builder实现电子邮件群发

摘 要:本文简单阐述了发送电子邮件的原理,提出了一种基于C++ Builder和Access2000数据库来实现电子邮件群发的方法,详细介绍了C++ Builder 中TIdSMTP组件的使用,并给出了用TIdSMTP组件实现群发的核心示例代码。  关键词:电子邮件群发;认证;TIdSMTP;TIdMessage;ADO  引言  邮件群发这一手段被广泛应用于电子商务、网络营销中,例...

2009-04-03 12:57:00 438

用BCB开发有身份认证功能的Email程序

摘 要 本文介绍了如何增强BCB中发送电子邮件的NMSMTP控件的功能,实现具有身份认证功能的邮件发送程序。  关键词 ESMTP,MIME,身份认证  引言  为了更有效地抑制垃圾邮件的泛滥,目前多数网站的邮件收发系统都使用了ESMTP服务的身份认证功能。即用户发送邮件时,需要对用户的身份进行验证,如果帐号或密码错误,邮件服务器会拒绝发送邮件。BorlandC++ Builde...

2009-04-03 12:56:00 141

C++ Builder 初学问与答(十五)

(7)在C++Builder集成开发环境中,还有Component菜单。在组件菜单下的菜单命令是有关建立、安装、重建组件的菜单项。其中:“New Component”菜单项打开组件向导建立新组件。  “Install Component”菜单项安装新的组件。  “Import ActiveX Control”菜单项将ActiveX控制的类型库加入到C++Builder的工程中。  ...

2009-04-03 12:55:00 72

C++ Builder 初学问与答(十六)

16.C/C++语言在CB中的一些特定用法   2)AnsiString是从Delphi中引进来的吗?  答:CB的核心组件VCL是用Object Pascal语言写出的,所以CB的VCL组件的属性有很多都是使用long string,例如:Text、 Name、Caption等属性都是使用Object Pascal的long string。基于此关系,CB只好建立了和Object...

2009-04-03 12:55:00 40

C++ Builder构建算二十四点小游戏

所谓算二十四点可能是不少读者朋友童年喜欢玩的扑克游戏之一,玩法是:把一副扑克牌从A到10选出来均分成两份,两个小朋友各持一份即可开始游戏,每人随机抽两张出来组成四张牌,把这四张牌加减乘除凑成结果为二十四,先算出来的一方赢得对方的两张牌,进行下一轮,如果都没计算出来为和局,直到把对方所有的扑克牌全部缴获,游戏方告结束。  想要自己算的最快吗?那最好是让程序来替你做个二十四点王。  用程序实现...

2009-04-03 12:55:00 68

C++ Builder 初学问与答(十二)

13.对话框组件96)问:怎样编写文件打开、保存等对话框?  答:C++Builder为我们提供了许多常用的对话框组件,这些对话框组件都放在组件模板的Dialogs选项卡中,例如Font,Color,Open和Print对话框。其中OpenDialog对话框组件最具有代表性,只要掌握了它的用法,那么你也就会使用其他的对话框组件了。  97)问:对话框组件的特性有哪些特性呢?  ...

2009-04-03 12:54:00 52

C++ Builder初学问与答(十三)

第二部分:快速提高  好久以来有不少朋友问我,《C++ Builder问与答》为什么不继续写了?我也一直在思考还应该写下去不?CBX的推出,加之宝兰宣布不在出新的CB版本,让我们这些一直喜爱CB的人不清楚下一个方向到底在何处?当然真的希望CB会继续,而不要倒下,但对于我们来说这只能是一种期盼L  CB的优点我不想多说了,否则就不会有这么多的喜欢者,而一些入门的朋友还是选择CB做为进入C/C++的工...

2009-04-03 12:54:00 63

C++ Builder初学问与答(十四)

“Attatch to Process”菜单项用来调试一个当前正在运行的进程。  “Parameters”菜单项用于指定应用程序运行时的初始参数。  “ReGISter ActiveX Server”菜单项用于将ActiveX控制加入到窗口登记表中。  “Unregister ActiveX Server”菜单项用于将ActiveX控制从窗口登记表中删除。  “Install CO...

2009-04-03 12:54:00 60

C++ Builder 初学问与答 (十一)

11.工具条组件  87)问:工具条是Windows编程经常要用的, C++Builder能不能实现这个功能呢? 答:当然可以,工具条是由许多具有图形的按钮组成的,这些按钮被分隔符分隔成许多组,每个组都能够完成特定的工作。工具条上的按钮具有与位图按钮相似的特性——可以拥有多个位图,当按钮处于不同状态时,例如按下、失效等,将显示不同的位图。以前C++Builder制作工具条的方法是通过把加速按钮...

2009-04-03 12:53:00 47

C++ Builder 初学问与答(八)

8.图形类组件  59)问:Windows是一个图形系统,C++Builder是怎样处理图形的呢? 答:C++Builder通过提供图形组件来处理图形,其中比较常用的有图像组件(Image)、几何图形组件(Shape)和画板组件(PaintBox)。前两个组件位于Additional页中,画板组件位于System页中。  在BCB中,Form、Image、BitMap、PaintBox...

2009-04-03 12:52:00 82

C++ Builder 初学问与答 (九)

9.多页组件  68)问:我觉得C++Builder的组件模板的管理方式很好,在这个模板中通过单击页就可以在各个页之间进行切换,在C++Builder中我应该怎样来实现呢? 答:我们可以用多页组件来实现,它的好处就是可以在有限的空间中尽量多地存放信息,而且便于把信息分类。就拿组件模板来说吧,在那么小的屏幕中放置了上百个组件,而且并不显得凌乱,这都是多页组件的功劳。  如果窗体上要放置大量的...

2009-04-03 12:52:00 47

C++ Builder 初学问与答 (十)

 10.菜单组件  77)问:菜单是Windows常用的用户界面。对于一个能够实际应用的程序,菜单是必不可少的组成部分。C++Builder中是怎样实现菜单的? 答:C++Builder为我们提供了两种菜单组件:一种是主菜单组件MainMenu;另一种是弹出菜单PopMenu组件。  主菜单组件的作用是在窗体上生成菜单条。菜单组件刚放到窗体上时,菜单是不可见的,当双击它打开菜单编辑器并且增...

2009-04-03 12:52:00 43

C++ Builder 初学问与答(六)

6.图形列表组件TreeView  45)问:有时侯,我希望实现类似资源管理器对文件夹管理的显示方式,和对文件的管理显示方式,在C++Builder中应该怎么办? 答:在C++Builder中可以直接使用图形列表组件来实现,它包括TreeView、ListView以及Outline组件。其中Outline组件实际上是基于Windows 3.1环境的组件,而且无论从功能还是使用的角度来看,它都无...

2009-04-03 12:51:00 56

C++ Builder 初学问与答(七)

53)问:能介绍一下TTreeNodes与TTreeNode? 答:在BCB中,树状视图的节点是通过TTreeNodes对象来管理的,通过这个对象可以对树状视图进行动态的增加、删除、插入、移动节点等操作。而每一个节点都是一个TTreeNode对象。  TTreeNode的主要属性和函数:  Count:这个属性用来返回某个节点所拥有的子节点的数目。它不包括其子节点。  Item...

2009-04-03 12:51:00 68

C++ Builder 初学问与答(四)

4.列表类组件  31)问:当我需要使用多个选项的时候,使用单选按钮或复选框来进行选择不是很恰当,因为在窗体上放置大量的按钮既不利于布局的美观,又会消耗大量的系统资源,C++Builder有什么解决办法吗?  答:可以使用列表框(ListBox、CheckListBox)或组合框(ComboBox)这两类最常用的列表组件。  32)问:列表框有那些主要属性?  答:列表组件List...

2009-04-03 12:50:00 71

C++ Builder 初学问与答(五)

38)问:事件OnChange和OnScorll都可以描述滚动条的滚动事件,他们有什么区别吗?答:事件OnChange和OnScorll是有区别的。只要属性Position的值发生改变,那么无论这个值是用户操作滚动条引起的还是通过程序修改的,都会产生OnChange事件。而OnScorll事件只有在用户操作滚动条时才发生。当用户操作滚动条时,首先发生OnScorll事件,然后OnChang...

2009-04-03 12:50:00 66

C++ Builder 初学问与答(三)

3. 按钮类组件    21)问:在进行Windows程序界面设计中,经常会用到按钮,在C++Builder中,按钮一定是通过按钮组件来实现的吗? 答:是的,并且C++Builder的按钮类组件十分丰富。BCB提供了两类按钮类组件:一类是执行类按钮,另一类是信息类按钮。所谓执行类按钮是指它们通常用来启动程序运行的,比如按钮、位图按钮、加速按钮。而信息类按钮一般用来获取信息,包括单选按钮和复选框...

2009-04-03 12:49:00 72

空空如也

空空如也

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

TA关注的人

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