内容列表
- 数据结构学习(C++)——循环链表
- 原书对循环链表的介绍很简略,实现部分也不完整(当然了,如果完整就又是重复建设)。而我也没觉得循环链表有什么别的用,他更应该是为了一个特殊的问题而产生的,这只是个人的看法。我从链表类派生出了循环链表,这需要注意几个细节。
1. 构造函数:派生类实例化时,先调用基类的构造函数;因此,初始化循环链表的工作就是将带表头的
- 分类:VC语言 查阅全文
- 数据结构学习(C++)——如何在一个链表中链入不同类型的对象
- 似乎你也注意到了,不管怎么定义,好像一个链表中的对象都是同一类型的。而实际上,这也是必须的,否则,返回节点中的数据这样的函数的返回值的类型是什么呢?但是,人的要求是无止境的……(省略本人感慨若干百字)。把不同的对象链在一个链表中的目的是为了方便使用,现在一定记住这个原则,后面的讨论都是基于这个原则的,否则,我们就是技术狂人了——偏偏实现一些看起来不可能的事情。
达到这个目标的原理其实很简单,只要
- 分类:VC语言 查阅全文
- 解析#pragma指令
- 在所有的预处理指令中,#Pragma 指令可能是最复杂的了,它的作用是设定编译器的状态或者是指示编译器完成一些特定的动作。#pragma指令对每个编译器给出了一个方法,在保持与C和C++语言完全兼容的情况下,给出主机或操作系统专有的特征。依据定义,编译指示是机器或操作系统专有的,且对于每个编译器都是不同的。其格式一般为: #
- 分类:VC语言 查阅全文
- 恶草丛生的阴暗角落---虚拟机制(上)
- 摘要:C++是一个恶草丛生的地带,虚拟机制是很重要,但是很危险的一个C++特性,所以有必要对此作一下阐述,希望能对大家有所帮助。
什么是虚函数 简单地说,就是在成员函数前加关键字virtual,这样这个成员函数就变
- 分类:VC语言 查阅全文
- 深度解析VC中的消息(中)
- 队列消息和非队列消息 从消息的发送途径来看,消息可以分成2种:队列消息和非队列消息。消息队列由可以分成系统消息队列和线程消息队列。系统消息队列由Windows维护,线程消息队列则由每个GUI线程自己进行维护,为避免给non-GUI现成创建消息队列,所有线程产生时并没有消息队列,仅当线程第一次调用GDI函数数系统给线
- 分类:VC语言 查阅全文
- 为什么应该升级到Struts 1.1?
- Struts 1.1 final终于发布了。新特性包括对多个子应用程序的支持、DynaBean和BeanUtil、声明式异常处理、Validator等。熟悉Struts的人肯定早已在用Struts 1.1,下面这篇文章是给不熟悉的人看的。
——————————————————
Introduction
Since the release of Struts 1.0, Struts has g
- 分类:VC语言 查阅全文
- 四则运算实现
- #include"conio.h"
#include "stdio.h"
#include "stdlib.h"
#define STACK_INIT_SIZE 100
#define STACKINCREMENT 10
typedef char SElemType;
typedef
- 分类:VC语言 查阅全文
- 数据结构学习(C++)——栈和队列(定义和实现)
- 栈和队列是操作受限的线性表,好像每本讲数据结构的数都是这么说的。有些书按照这个思路给出了定义和实现;但是很遗憾,这本书没有这样做,所以,原书中的做法是重复建设,这或许可以用不是一个人写的这样的理由来开脱。
顺序表示的栈和队列,必须预先分配空间,并且空间大小受限,使用起来限制比较多。而且,由于限定存取位置,顺序表示的随机存取的优点就没有了,所以,链式结构应该是首选。
栈的定义和实现
#ifnd
- 分类:VC语言 查阅全文
- 数据结构学习(C++)——稀疏矩阵(十字链表【2】)
- 如果你细想想,就会发现,非零元节点如果没有指示位置的域,那么做加法和乘法时,为了确定节点的位置,每次都要遍历行和列的链表。因此,为了运算效率,这个域是必须的。为了看出十字链表和单链表的差异,我从单链表派生出十字链表,这需要先定义一种新的结构,如下:
class MatNode
{
public:
int data;
- 分类:VC语言 查阅全文
- 数据结构学习(C++)——栈应用(表达式求值)
- 栈的应用很广泛,原书只讲解了表达式求值,那我也就只写这些。其实,栈的最大的用途是解决回溯问题,这也包含了消解递归;而当你用栈解决回溯问题成了习惯的时候,你就很少想到用递归了,比如迷宫求解。另外,人的习惯也是先入为主的,比如树的遍历,从学的那天开始,就是递归算法,虽然书上也教了用栈实现的方法,但应用的时候,你首先想到的还是递归;当然了,如果语言本身不支持递归(如BASIC),那栈就是唯一的选择了——
- 分类:VC语言 查阅全文
- ADSL组建局域网快捷方案
- http://www.ccidnet.com/school/net/2001/11/26/70_5551.html
这段时间,ADSL以其多项过人的技能得到上网族的广泛宠爱,高速的网络带宽、安全的网络架构、永远在线的超炫感觉,再加上上网不用交电话费的便民特性,成了ADSL和它的拥有者们骄傲的资本。在网上经常看到一些朋友问到关于在用ADSL组网中遇到的种种问题,我感觉大家都在用比较
- 分类:VC语言 查阅全文
- 闲言碎语话编程
- 有人说:编程高手==游戏高手。如果这是真的话,我早就成高手了,因为在游戏里,我早已成为宇宙总管、富甲天下、仗剑走天涯了。可是我还是一个菜鸟:)闲来无事,随便贴点文章。 程序员不应依赖开发工具,程序员更应该拥有的是一种思维、一种精神、一种观念。就像Richard.M.Stallman一样,有自己的精神,为自由软件而
- 分类:VC语言 查阅全文
- 深度解析VC中的消息(上)
- 摘要:Windows编程和Dos编程,一个很大的区别就是,windows编程是事件驱动,消息传递的。所以,要做好windows编程,必须对消息机制有一个清楚的认识,本文希望能够对消息的传递做一个全面的论述,由于小生初学VC,里面可能有一些错误的地方,还往各位大虾批评、指正。
消息是指什么?&nbs
- 分类:VC语言 查阅全文
- 快捷方式的函数
- &n
- 分类:VC语言 查阅全文
- 小技巧:一个工具条内放多排按钮
- 有的时候我们需要在一个工具条内放多排按钮,例如windows自带的画图软件,怎么实现呢?这里有一个小小的技巧,希望你能喜欢:)
首先假定我们的工具条资源号为IDR_PAINTTOOL; 我们从CToolBar类派生出一个CPaintToolbar类,添加一个受保
- 分类:VC语言 查阅全文
- 深度解析VC中的消息(下)
- 前面,我们分析了消息的基本理论和基本的函数及用法,接下来,我们将进一步讨论消息传递在MFC中的实现。
MFC消息的处理实现方式 初看MFC中的各种消息,以及在头脑中根深蒂固的C++的影响,我们可能很自然的就会想到利用C++的三大特性之一:虚拟机制来实现消息的传递,但是经过分析,我们看到事情并不是想我们想象的那样,在MFC中消息是通过一种所谓的消息映射机制来处理的。 为什么呢?在潘爱民
- 分类:VC语言 查阅全文
- 解除心头的困惑--纯虚函数
- 摘要:虚函数里面有一个很特殊的东东,那就是纯虚函数,关于纯虚函数的问题也是bbs上常见的话题,这里我想对此作一个小小的论述,希望能给初学者一个满意的解释。
一、引入原因: 1、为了方便使用多态特性,我们常常需要在基类中定义虚拟函数。 2、在很多情况下,基类本身生成对象是不合情理的。例如,动物作为一个
- 分类:VC语言 查阅全文
- ADSL组建局域网快捷方案
-
ADSL组建局域网快捷方案(Yuan 2001年11月26日 10:54)
这段时间,ADSL以其多项过人的技能得到上网族的广泛宠爱,高速的网络带宽、安全的网络架构、永远在线的超炫感觉,再加上上网不用交电话费的便民特性,成了ADSL和它的拥有者们骄傲的资本。在网上经常看到一些朋友问到关于在用ADSL组网中遇到的种种问题,我感觉大家都在用比较麻烦的方法来组成自己的局域网。在这里我以自己
- 分类:VC语言 查阅全文
- 形形色色的自定义消息(上)
- 摘要:自从发了5篇关于消息的文章,有的网友来信希望我讲一些比较实用的消息机制用法,这里我想就用户的自定义消息做一个全面的论述,希望能够解除你心头的困惑。
一、普通的自定义消息方法。 根据我在前面的几篇文章中提到的消
- 分类:VC语言 查阅全文
- 数据结构学习(C++)——线性链式结构总结(代后记)【1】
- 看到这个标题,有些人一定松了一口气——这小子可算白话完了,当然了,你要是略有惋惜之情,我真是受宠若惊。但不论你怎么想,写到这里只是告一段落,并没有完,后面还有很大一部分呢,比如树、图、查找、排序——这么多年了,还是这点东西。代后记的意思是,我觉得对前面线性链式结构的总结,对后面的学习有指导意义:从前面的学习中,你能得出如何学习数据结构,以及如何正确看待这门课——如果你能从重复建设中看到这样做的价值
- 分类:VC语言 查阅全文