自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

晴天的专栏

天道酬勤

  • 博客(21)
  • 资源 (5)
  • 收藏
  • 关注

原创 模板代码的组织方式

当然,如果你足够细心,你一定会好奇,为什么大部分书中的例子,模板的代码都写在头文件中(.h文件),这里我们就讨论模板代码的组织方式。C++支持两种模板代码的组织方式,分别是包含方式(我们使用的就是包含方式)和分离方式。这两种组织方式没有太根本的区别,就是一个将代码全写在头文件中,分离方式是像写类一样声明和定义分别写在头文件(.h文件)和实现文件(cpp文件)中。下面我们分别讨论下这两种代码

2012-02-29 14:11:33 638

原创 模板的特化与重载

特化与重载:1.重载函数模板:  与普通函数一样,函数模板也可以重载.在重载函数模板的时候,应该把改变限制在一下两种情况:改变参数的数目或者显示地指定模板参数.除此之外,函数的所有重载版本的声明都应该位于该函数被调用的位置之前.P.S:  类模板是不能被重载的.2.特化:  1`全局类模板的的特化:  如果要特化一个类模板,就要特化该类模板的所有成员函数

2012-02-29 09:52:21 741

原创 模板专门化(特化)

一、模板特化, specialization of template模板特化(specialization of template)并不是说实例化一个模板,如template ,class stack;声明stack,这是实例化一个模板类。类模板特化的意思是,对于某个特定的类型,需要对模板进行特殊化,即特殊的处理。例如,stack类模板针对bool类型有特化,因为实际上bool类型只需要一个二

2012-02-29 09:47:16 1465

原创 关键字volatile

1、C++的关键字,是容易改变的意思。就是告诉编译器,这个对象可能在一些情况被其它的代码改变.在优化时要注意.不要做缓存等...(优化器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不是使用保存在寄存器里的备份)使用该关键字的例子如下: int volatile nVint;当要求使用volatile 声明的变量的值的时候,系统总是重新从它所在的内存读取数据,即使它前面的指令

2012-02-29 09:07:43 542

原创 虚函数和抽象类和接口

关键字 VirtualVirtual是C++ OO机制中很重要的一个关键字。只要是学过C++的人都知道在类Base中加了Virtual关键字的函数就是虚拟函数(例如函数print),于是在 Base的派生类Derived中就可以通过重写虚拟函数来实现对基类虚拟函数的覆盖。当基类Base的指针point指向派生类Derived的对象 时,对point的print函数的调用实际上是调用了Der

2012-02-28 15:57:32 813

原创 友元函数与友元类

友元函数和友元类的需要:  类具有封装和信息隐藏的特性。只有类的成员函数才能访问类的私有成员,程序中的其他函数是无法访问私有成员的。非成员函数可以访问类中的公有成员,但是如果将数据成员都定义为公有的,这又破坏了隐藏的特性。另外,应该看到在某些情况下,特别是在对某些成员函数多次调用时,由于参数传递,类型检查和安全性检查等都需要时间开销,而影响程序的运行效率。  为了解决上述问题,提出一种使用

2012-02-28 09:19:09 529

原创 C++对象的拷贝与赋值操作

我发现一些同事在用C++编写一个类时,知道什么时候需要实现拷贝构造函数和赋值操作,但不知道什么时候拷贝构造函数被调用,什么时候赋值操作被调用,甚至把二者混为一谈。要弄明白这个问题,最简单的做法莫过于写个测试程序试一下。不过那样做也未必是好办法,实验的结果往往导致以偏概全的结论。不如好好想一下,弄清楚其中的原理,再去写程序去验证也不迟。拷贝构造函数,顾名思义,等于拷贝 + 构造。它肩负着创建

2012-02-25 14:10:14 400

原创 typedef一个指向函数的指针

用法一:typedef int (*MYFUN)(int, int); 这种用法一般用在给函数定义别名的时候上面的例子定义MYFUN 是一个函数指针, 函数类型是带两个int 参数, 返回一个int 在分析这种形式的定义的时候可以用下面的方法: 先去掉typedef 和别名, 剩下的就是原变量的类型. 去掉typedef和MYFUN以后就剩: int (*)(int

2012-02-22 15:53:43 859

原创 static_cast、dynamic_cast、reinterdivt_cast、和const_cast

使用标准C++的类型转换符:static_cast、dynamic_cast、reinterdivt_cast、和const_cast。1 static_cast用法:static_cast  ( exdivssion ) 该运算符把exdivssion转换为type-id类型,但没有运行时类型检查来保证转换的安全性。它主要有如下几种用法:①用于类层次结构中基类和子类之间指针或

2012-02-22 11:26:08 510

转载 C++——extern关键字用法

1 基本解释  extern可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。  另外,extern也可用来进行链接指定。2 问题:extern 变量  在一个源文件里定义了一个数组:char a[6];  在另外一个文件里用下列语句进行了声明:extern char *a;  请问,这样可以吗?  答案与

2012-02-22 10:50:16 428

转载 红黑树代码

总结:这章介绍了红黑树的性质、旋转,并详细介绍了红黑树的插入和删除。 1.    红黑树的性质1)  每个节点或是红的,或是黑的2)  根节点是黑的3)  每个叶节点(NIL)是黑的4)  如果一个节点是红的,则它的两个儿子都是黑的5)  对每个节点,从该节点到其子孙节点的所有路径上包含相同数目的黑节点。 黑高度:从某个节点x出发到大一个叶节点的任意一条路径上,

2012-02-20 10:15:15 1318

转载 B树

总结:本章介绍了B树,并介绍了B树中搜索,插入,删除,分裂的算法。 1.    B树的定义B树是与红黑树类似的一颗平衡查找树,但在降低磁盘I/O操作次数方面要更好一些。B树的性质:1)  每个节点x的域:a)         n[x],x中的关键字数,若x是B树中的内节点,则x有n[x]+1个子女。b)        n[x]个关键字本身,以非降序排列,key1[x]2

2012-02-20 10:14:21 557

转载 斐波那契堆

总结:这一章讲了斐波那契堆,它是一种比二项堆更松散的堆,它由一组无序的二项树组成,对不涉及删除元素的操作,它仅需O(1)的平摊运行时间。本章介绍斐波那契堆的插入、合并、删除等操作。 1.    斐波那契堆的结构每个结点x的域:1)  父节点p[x]2)  指向任一子女的指针child[x]3)  左兄弟left[x]4)  右兄弟right[x]5)  子女的个数d

2012-02-20 10:12:32 1294

转载 二项堆

总结:这一章介绍了二项树、二项堆,并介绍了二项堆的搜索、删除、插入等操作,二项堆比二叉堆的优势就是二项堆的合并的复杂度只有O(lgn),而二叉堆合并的复杂度在最坏情况下有O(n),因此若进行合并操作,二项堆的性能就比二叉堆要好了。 1.    二项树一个二项堆由一组二项树构成。二项树是一种递归定义的有序树,二项树B0只包含一个结点,二项树Bk由两颗二项树Bk-1链接而成:其中一颗树

2012-02-20 10:11:41 814

转载 平摊分析

总结:平摊分析是一种用来分析执行一系列类似操作的算法的工具,它对整个操作序列的真实代价限界。本章介绍了平摊分析的三种方法,分别是聚集分析、记账方法、势能方法。每种方法都通过分析栈操作和二进制计数器增1来举例分析。最后,本章用平摊分析的方法分析了表动态扩张和收缩的代价限界。 在平摊分析中,执行一系列数据结构操作所需要的时间是通过执行的所有操作求平均而得出的。平摊分析可以用来证明在一系列操作中

2012-02-20 10:06:41 837

原创 动态规划算法

一、基本概念    动态规划过程是:每次决策依赖于当前状态,又随即引起状态的转移。一个决策序列就是在变化的状态中产生出来的,所以,这种多阶段最优化决策解决问题的过程就称为动态规划。二、基本思想与策略    基本思想与分治法类似,也是将待求解的问题分解为若干个子问题(阶段),按顺序求解子阶段,前一子问题的解,为后一子问题的求解提供了有用的信息。在求解任一子问题时,列出各种可能

2012-02-14 15:38:33 529

原创 分治算法

一、基本概念   在计算机科学中,分治法是一种很重要的算法。字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。这个技巧是很多高效算法的基础,如排序算法(快速排序,归并排序),傅立叶变换(快速傅立叶变换)……    任何一个可以用计算机求解的问题所需的计算时间都与其

2012-02-14 10:20:16 538

原创 贪心算法

一、基本概念:      所谓贪心算法是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的仅是在某种意义上的局部最优解。     贪心算法没有固定的算法框架,算法设计的关键是贪心策略的选择。必须注意的是,贪心算法不是对所有问题都能得到整体最优解,选择的贪心策略必须具备无后效性,即某个状态以后的过程不会影响以前的状态,只与当前状态有关。

2012-02-14 10:07:04 565

原创 GPRS数据传输平面

GPRS数据传输平面和GSM相比,GPRS体现出了分组交换和分组传输的特点,即数据和信令是基于统一的传输平台,从上面的图中可以看出,在数据传输所经过的几个接口,传输层(LLC)以下的协议结构对于数据和信令是相同的。而在GSM中,数据和信令只是在物理层上相同。GTP:GPRS燧道协议。所有在GSN间传送的PDU应经GTP重新包装,GTP提供流量控制功能。UDP/TCP:传输层

2012-02-12 11:01:03 1572 1

原创 GPRS网络组成及接口

GPRS网络组成及接口  Gb口:SGSN通过Gb口与基站BSS相联,为移动台MS服务。通过逻辑控制协议LLC,建立SGSN与MS之间的连接,提供移动性管理(位置跟踪)和安全管理功能。SGSN完成MS和SGSN之间的协议转换,即骨干网使用的IP协议转换成SNDCP和LLC协议,并提供MS鉴权和登记功能。  Gn口:SGSN通过Gn口和GGSN相联,通过GPRS隧道协议(GTP)建立

2012-02-12 10:16:14 5149

原创 GPRS网络结构

GPRS网络结构图 BTS(Base Transceiver Station,基站收发台)BTS可看作一个无线调制解调器,负责移动信号的接收和发送处理BSC(Base Station Controller,基站控制器)MSC(Mobile Switching Center,移动交换中心)整个GPRS网络的核心,它控制所有BSC的业务,提供交换功能及和系统内其它功能的连接,MSC可以

2012-02-11 12:47:37 9202

C++实例——考试管理系统

C++实例——考试管理系统

2011-12-24

C++实例——垃圾清理系统

C++实例——垃圾清理系统

2011-12-24

C++实例——视频聊天系统

C++实例——视频聊天系统

2011-12-24

C++实例——KTV点歌系统

C++实例——KTV点歌系统

2011-12-24

空空如也

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

TA关注的人

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