- 博客(33)
- 资源 (2)
- 收藏
- 关注
原创 introduction to algorithms 笔记 AVLtree
//author:yydrewdrew#define ERROR -1template struct AVLTreeNode{ T data; int disheight;//height(right) - height(left) AVLTreeNode *left; AVLTreeNode *right; AVLTreeNode *parent;};templateclass AV
2008-07-24 20:46:00
535
原创 introduction to algorithms 笔记 interval tree(区间树)
//author:yydrewdrew #include using namespace std;#define max(a,b) (((a) > (b)) ? (a) : (b))#define ERROR -1template struct IntervalTreeNode{ T leftvalue; T rightvalue; T maxrightvalue; IntervalT
2008-07-24 20:35:00
903
原创 introduction to algorithms 菜鸟笔记 sattree(统计树)
//author:yydrewdrew#include using namespace std;template struct StatTreeNode{ T data; unsigned int size; StatTreeNode *parent; StatTreeNode *left; StatTreeNode *right; enum Color{R,B}; Color color
2008-07-24 20:30:00
557
原创 introduction to algorithms 菜鸟笔记 rbtree(红黑树)
//author:yydrewdrew#include using namespace std; template struct RBTreeNode{ T data; RBTreeNode *parent; RBTreeNode *left; RBTreeNode *right; enum Color{R,B}; Color color;}; template clas
2008-07-24 20:25:00
590
原创 introduction to algorithms 菜鸟笔记 binfindtree
//author:yydrewdrew#include using namespace std;template struct BinTreeNode{ T data; BinTreeNode *left; BinTreeNode *right; BinTreeNode *parent;};template class BinFindTree{ public: BinFindTree()
2008-07-24 20:21:00
561
原创 introduction to algorithms 菜鸟笔记 sort algorithms
//author:yydrewdrew#define NULL (0L)#define ERROR -1typedef unsigned int uint;typedef uint size_t;template typedef bool(*compare)(const T &a,const T &b);template bool F(const T &a,const T &b){
2008-07-24 20:16:00
501
原创 introduction to algorithms 菜鸟笔记 slist
//author:yydrewdrew#define ERROR -1 template struct snode{ snode *next; T value;}; template class slist{public: explicit slist(const T &t,size_t num); explicit slist(); explicit slist(c
2008-07-24 20:14:00
577
原创 introduction to algorithms 菜鸟笔记 list
//author:yydrewdrew #define ERROR -1 template struct node{ node *next; T value;}; template class list{public: explicit list(const T &t,const size_t num); explicit list(); explicit list
2008-07-24 20:09:00
567
原创 introduction to algorithms 菜鸟笔记 vector
//author:yydrewdrew#define ERROR -1#define ALLOC_STEP 5 template class vector{public: explicit vector(); explicit vector(const T &t,size_t num); explicit vector(const T *p,size_t num); voi
2008-07-24 20:00:00
562
原创 introduction to algorithms 菜鸟笔记 queue
//author:yydrewdrew #define ERROR -1 template struct snode{ snode *next; T value;}; template class queue{public: explicit queue(); void enqueue(const T &t); T dequeue(); queue(const qu
2008-07-24 19:56:00
470
原创 introduction to algorithms 菜鸟笔记 stack
//author:yydrewdrew #define ERROR -1template struct snode{ snode *next; T value;}; template class stack{public: explicit stack(); void push(const T &t); T pop(); stack(const stack &obj);
2008-07-24 19:19:00
601
转载 用GDB调试程序(3)
四、输出格式 一般来说,GDB会根据变量的类型输出变量的值。但你也可以自定义GDB的输出的格式。例如,你想输出一个整数的十六进制,或是二进制来查看这个整型变量的中的位的情况。要做到这样,你可以使用GDB的数据显示格式: x 按十六进制格式显示变量。 d 按十进制格式显示变量。 u 按十六进制格式显示无符号整型。 o
2007-06-12 10:04:00
667
转载 用GDB调试程序(2)
四、维护停止点上面说了如何设置程序的停止点,GDB中的停止点也就是上述的三类。在GDB中,如果你觉得已定义好的停止点没有用了,你可以使用delete、clear、disable、enable这几个命令来进行维护。 clear 清除所有的已定义的停止点。 clear clear 清除所有设置在函数上的停止点。
2007-06-12 09:55:00
810
转载 用GDB调试程序(1)
GDB概述 ————GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具。或许,各位比较喜欢那种图 形界面方式的,像VC、BCB等IDE的调试,但如果你是在UNIX平台下做软件,你会发现GDB这个调试工具有比VC、BCB的图形化调试器更强大的功 能。所谓“寸有所长,尺有所短”就是这个道理。一般来说,GDB主要帮忙你完成下面四个方面的功能: 1、启动你的程序,可
2007-06-12 09:47:00
962
转载 在 Linux 中使用共享对象
让共享内存为您服务,而不是为您制造麻烦充分利用共享内存并不总是容易的。在本文中,IBM 的 Sachin Agrawal 与我们共享了他的 C++ 专门技术,展示了面向对象如何去利用一个独特而实用的进程间通信通道的关键优势。就时间和空间而言,共享内存可能是所有现代操作系统都具备的最高效的进程间通信通道。 共享内存同时将地址空间映射到多个进程:一个进程只需依附到共享内存并像使用普
2007-06-01 20:19:00
850
转载 linux内存共享
共享内存(上)共享内存可以说是最有用的进程间通信方式,也是最快的IPC形式。两个不同进程A、B共享内存的意思是,同一块物理内存被映射到进程A、B各自的进程地址空间。进程A可以即时看到进程B对共享内存中数据的更新,反之亦然。由于多个进程共享同一块内存区域,必然需要某种同步机制,互斥锁和信号量都可以。采用共享内存通信的一个显而易见的好处是效率高,因为进程可以直接读写内存,而不需要任何数据
2007-06-01 11:23:00
986
转载 强制数据类型转换
其实,关于强制类型转换的问题,很多书都讨论过,写的最详细的是C++ 之父的《C++ 的设计和演化》。最好的解决方法就是不要使用C风格的强制类型转换,而是使用标准C++的类型转换符:static_cast, dynamic_cast。标准C++中有四个类型转换符:static_cast、dynamic_cast、reinterpret_cast、和const_cast。下面对它们一一进行介绍。
2007-04-27 23:58:00
2072
原创 c++学习杂记(4)
函数把相关的语句组合在一起,并赋予一个名字,这种形式的组合即函数(类似于脚本,只不过是命令而已),通常也叫例程或者过程。函数不允许嵌套定义,c++中函数声明就是函数原型,可以没有参数名字,当编译时编译器把调用函数与函数原型比较,链接时要调用函数定义,如果声明与调用不一致,那么编译会出问题,如果调用与定义不一致,那么会造成链接错误。被调用函数返回时有可能会自动的隐式转换(数据类型相容的话),如
2007-04-24 23:56:00
664
原创 c++学习杂记(3)
面向对象的本质就是把数据和方法统一成一个整体对象。函数定义:描述一个函数所执行的算法的过程 。变量,函数必须声明后才能使用,函数声明总是由函数原型构成的。函数定义由函数头和函数体构成,函数中定义的参数为形参,调用函数时实际传递的实际值称为实参,常规函数调用时是将实参复制给形参,实参可以是表达式,但形参只能是变量,因为它只能接受赋值。函数最后写return语句是好的编程风格。如果没有,函数自
2007-04-11 16:44:00
744
转载 cpu位数和系统位数
解释CPU的位数与操作系统的位数 随着近来AMD和Intel的64位CPU以及 Microsoft 64位操作系统的相继发布,我想来谈谈CPU位数与操作系统位数的问题,这二者有区别也有联系,操作系统位数的概念是基于CPU的位数的。 首先我们从计算机的信息表示谈起。计算机中的信息分为两类:控制信息、数据信息。控制信息表示:条件、命令、状态等。数据信息有数值与非数值的两类,非数值
2007-04-11 15:37:00
8286
转载 关于new、delete和堆的一些理解
关于new、delete和堆的一些理解先看以下的两个简单的程序:第一: //////////Visula C++ 6.0环境 #includevoid main(){int a=3;int *p=new int;p=&a;coutdelete p; /////////有错误}第二://////////Visual C++ 6.0环境 #includevoid main()
2007-04-11 15:17:00
746
原创 c++学习杂记(2)
类和结构: class和struct的比较:struct是简化数据逻辑结构的设计,本质上属于自定义的数据结构;class是将数据与方法封装,让行为和数据一致,本质上是一种程序设计方法,折射了一种编程思想。struct不能包括函数,而class可以,在struct里成员默认属性(存储控制)是private而struct默认属性是public。c的struct和c++的struct的区别:在
2007-04-07 17:02:00
887
原创 c++学习杂记(1)
最近在学校没事,看了看下c++,由于本人又懒又笨,c++一直没学懂过,写下来作为备忘,菜鸟一天进步一点点也好,如果有错欢迎大家提出来。类的constructor和继承 :子类不能继承父类的constructor,只能调用父类的constructor,如果子类没有声明constructor,当构造子类的实例时,将执行其默认构造函数,该默认构造函数将会首先调用父类的默认构造函数,若父类没有默
2007-04-06 21:50:00
1217
转载 HP-UNIX命令集合
1、机型#model9000/800/L2000-44注意:其中44是指每个cpu有440MHZ。2、cpu个数#topCPU LOAD USER NICE SYS IDLE BLOCK SWAIT INTR SSYS0 0.02 0.0% 0.0% 0.% 0.0% 0.0% 0.0% 0.0%1 0.00 0.6%
2007-04-03 13:13:00
5381
转载 C++中extern “C”含义深层探索
1.引言 C++语言的创建初衷是“a better C”,但是这并不意味着C++中类似C语言的全局变量和函数所采用的编译和连接方式与C语言完全相同。作为一种欲与C兼容的语言,C++保留了一部分过程式语言的特点(被世人称为“不彻底地面向对象”),因而它可以定义不属于任何类的全局变量和函数。但是,C++毕竟是一种面向对象的程序设计语言,为了支持函数的重载,C++对全局函数的处理方式
2007-04-03 13:07:00
1034
1
转载 overload和override的区别
1、Overload没有关系,Override有点关系(范围小的可以被范围大的Override)。 2、Overload返回值类型不同不能作为不同的两个函数,Override应该完全一样的返回类型。 overload: public a(){} public a(int a){] 在一个类中有同名的方法,但是方法带有不同的参数 Override: public class a{ public
2007-04-03 12:49:00
1316
1
转载 NT环境下进程隐藏的实现
在NT环境下隐藏进程,也就是说在用户不知情的条件下,执行自己的代码的方法有很多种,比如说使用注册表插入DLL,使用windows挂钩等等。其中比较有代表性的是Jeffrey Richer在《windows核心编程》中介绍的LoadLibrary方法和罗云彬在《windows环境下32位汇编语言程序设计》中介绍的方法。两种方法的共同特点是:都采用远程线程,让自己的代码作为宿主进程的线程在宿主进程的
2007-03-27 23:11:00
653
转载 error LNK2001错误
在创建MFC项目时, 不使用MFC AppWizard向导, 如果没有设置好项目参数, 就会在编译时产生很多连接错误, 如error LNK2001错误, 典型的错误提示有:libcmtd.lib(crt0.obj) : error LNK2001: unresolved external symbol _mainLIBCD.lib(wincrt0.obj) : error LNK2001: u
2007-03-27 21:52:00
1383
转载 如何骗过防火墙
1 用专有软件给病毒加壳。2 了解一般防火墙侦测的规律。在驻留的时候小心点。广撒网。(广撒网也未必,除非你打算让你的木马出名)3 使用多进程互相监测。4 利用QQ 等通信软件,转播。最好的办法是跟踪IE漏洞信息。开网站骗人去看。
2007-03-27 12:47:00
750
转载 如何突破各种防火墙的防护
现在随着人们的安全意识加强,防火墙一般都被公司企业采用来保障网络的安全,一般的攻击者在有防火墙的情况下,一般是很难入侵的。下面谈谈有防火墙环境下的攻击和检测。 一 防火墙基本原理 首先,我们需要了解一些基本的防火墙实现原理。防火墙目前主要分包过滤,和状态检测的包过滤,应用层代理防火墙。但是他们的基本实现都是类似的。 | |---路由器-----网卡|防火墙|网卡|----------内部网络|
2007-03-27 12:20:00
1043
转载 防火墙的工作原理
防火墙就是一种过滤塞(目前你这么理解不算错),你可以让你喜欢的东西通过这个塞子,别的玩意都统统过滤掉。在网络的世界里,要由防火墙过滤的就是承载通信数据的通信包。 天下的防火墙至少都会说两个词:Yes或者No。直接说就是接受或者拒绝。最简单的防火墙是以太网桥。但几乎没有人会认为这种原始防火墙能管多大用。大多数防火墙采用的技术和标准可谓五花八门。这些防火墙的形式多种多样:有的取代系统上
2007-03-27 12:11:00
845
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人