在C++中实现属性
详述 我们首先看一下什么是属性。一个属性表现为一个字段或者成员变量,但它通过read和write方法或者get和set方法暗中操作变量。 例如,若存在类A和它的属性Count,我可以写如下的代码: A foo; Cout foo.Count;实际上Count调用它的get函数返回当前的变量值。你可以将属性定为只读(你可以读取它但不能修改它)、只写或者可读写,这就是使用属性而不直接使用变量的的一个最大好处了。好了,让我们开始来实现它: 我们需要能做如下的事: int i = foo.Count; //--...
数据结构题集--数组(二维数组)
设计一个矩阵相乘的程序 假设有 1 5 7 3 3 9 1 4 1 4 A= 3 6 3 9 B= 5 6 7 9 0 3 1 2 8 7 3 2 7 2 5 6 0 3 1 9 9 7 4 7 8 0 3 2 5 4 求出A*B的矩阵 程序构思: 我们所知的矩阵乘法运算的算式如下: Cij = Aik X Bkj 的k从1到 n 的和,那么可以用一个3层循环来运算此算式: C(1,1)=A(1,1)*B(1,1)+A(1,2)*B(2,1)+A(1,3)*B(3,1)+A(1,4)*B(4,1) =(...
数据结构算法集---C++语言实现
这是我学数据结构编写的算法,我把他整理出来,都是基本算法,供大家学习。我使用c++面向对象形式编写,各种算法都封装在各自的类里,如果想增加功能,在相应的类里增加函数即可。我对树和图的构造也做了一些人性化设计,输入更加形象化,你可能看不懂,没关系漫漫来。各种类都使用模版设计,可以对各种数据类型操作(整形,字符,浮点) /////////////////////////// // // // 堆栈数据结构 stack.h // // // ////////////////////////// #includ...
数据结构辅导---栈和队列
3. 把中缀表达式转换为后缀表达式的算法 设以’@’字符作为结束符的中缀算术表达式已经保存在s1字符串中,转换后得到的后缀算术表达式拟存于s2字符串中。由中缀表达式转换为后缀表达式的规则可知:转换前后,表达式中的数值项的次序不变,而运算符的次序发生了变化,由处在两个运算对象的中间变为处在两个运算对象的后面,同时去掉了所有的括号。为了使转换正确,必须设定一个运算符栈,并在栈底放入一个特殊算符,假定为’@’字符,让它具有最低的运算符优先级,假定为数值0,此栈用来保存扫描中缀表达式得到的暂不能放入后缀表达式中...
数据结构:哈夫曼树的应用
#includestdio.h #includestdlib.h #includestring.h #includeconio.ha #includegraphics.h #define MAXVALUE 200 /*权值的最大值*/ #define MAXB99v 30 /*最大的编码位数*/ #define MAXNODE 30 /*初始的最大的结点数*/ strUCt haffnode {char data; int weight; int flag; int parent; /*双亲结点的下标*...
通用线程:POSIX 线程详解
POSIX 线程是提高代码响应和性能的有力手段。在此三部分系列文章的第二篇中,Daniel Robbins 将说明,如何使用被称为互斥对象的灵巧小玩意,来保护线程代码中共享数据结构的完整性。 互斥我吧! 在前一篇文章中,谈到了会导致异常结果的线程代码。两个线程分别对同一个全局变量进行了二十次加一。变量的值最后应该是 40,但最终值却是 21。这是怎么回事呢?因为一个线程不停地“取消”了另一个线程执行的加一操作,所以产生这个问题。现在让我们来查看改正后的代码,它使用互斥对象(mutex)来解决该问题: t...
自定义控件之支持模板
基于模版的简单控件 %@ Page language="c#" Codebehind="WebForm1.aspx.cs" AutoEventWireup="false" Inherits="WebApp3.WebForm1" % %@ Register TagPrefix="MY" NameSpace="WebApp3" Assembly="WebApp3" % !DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" HTML HEAD...
自定义控件之模板+数据绑定
自定义控件(模板+数据绑定) 先说说模板 asp:datagrid id="mydg" runat="server" Columns asp:Button id=Button1 Runat="server" /Columns /asp:datagrid 这个Columns就是个模板标记,在自定义控件中可以自己任意设置这个Columns,可以是OverRed... 开始: 新建个类 MyItemTemPlateC.cs using System; using System.Collections; usi...
自定义控件之可以动态加载用户控件
自定义控件中动态加载用户控件 自己写个自定义控件,如 MyControls:Containers id="myc" runat="server" ITEMPLATE MyControls:MidArea runat="server" /MyControls:MidArea /ITEMPLATE /MyControls:Containers 要想每次使用Containers时就自动有页眉和页脚,一种方法就是在在做Containers的时候自己在里面加html元素。但是这中方法麻烦,也不容 易便于以后的修改...
JDOM使用详解及实例
一、JDOM 简介 JDOM是一个开源项目,它基于树型结构,利用纯Java的技术对XML文档实现解析、生成、序列化以及多种操作。 JDOM 直接为JAVA编程服务。它利用更为强有力的JAVA语言的诸多特性(方法重载、集合概念以及映射),把SAX和DOM的功能有效地结合起来。 在使用设计上尽可能地隐藏原来使用XML过程中的复杂性。利用JDOM处理XML文档将是一件轻松、简单的事。 JDOM 在2000年的春天被Brett McLaughlin和Jason Hunter开发出来,以弥补DOM及SAX在实际应...
WinForm中ToolBar与TabControl的一些事件写法
由于ToolBar控件中不提供单个按钮的事件,因此在这里利用toolBar1.Buttons集合的IndexOf()方法捕捉单个的按钮,将其事件发送给ToolBarButtonClickEventHandler处理器。 //初始化: 以下是代码片段: this.toolBar1.ButtonClick += new System.Windows.Forms.ToolBarButtonClickEventHandler(this.toolBar1_ButtonClick); //事件方法: 以下是代码片段...
C++箴言:只要可能就用const
关于 const 的一件美妙的事情是它允许你指定一种语义上的约束:一个特定的对象不应该被修改。而编译器将执行这一约束。它允许你通知编译器和其他程序员,某个值应该保持不变。如果确实如此,你就应该明确地表示出来,因为这样一来,你就可以谋取编译器的帮助,确定这个值不会被改变。 关键字 const 非常多才多艺。在类的外部,你可以将它用于全局常量或命名空间常量,就像那些在文件、函数或模块范围内被声明为 static 的对象。在类的内部,你可以将它用于 static 和 non-static 数据成员上。对于指针...