自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

majcos的专栏

努力寻找方向

  • 博客(17)
  • 收藏
  • 关注

转载 P,NP,NPC

P类问题就是所有复杂度为多项式时间的问题的集合。然而有些问题很难找到多项式时间的算法(或许根本不存在),比如找出无向图中的哈米尔顿回路问题,但是我们发现如果给了我们该问题的一个答案,我们可以在多项式时间内判断这个答案是否正确。比如说对于哈米尔顿回路问题,给一个任意的回路,我们很容易判断他是否是哈米尔顿回路(只要看是不是所有的顶点都在回路中就可以了)。这种可以在多项式时间内验证一个解是否正确的问题称

2006-09-27 10:08:00 1331

原创 C++ tips 3

可以定义并且调用一个pure virtual function,不过它的调用只能被静态地调用,不能经由虚拟机制调用。这个性质对pure virtual destructor很有用。何时合成析构函数1.没有定义destructor2.基类或者成员有destructor要满足这两个条件才会合成。C++中所有的global objects都被放置在程序的数据段中,如果没有明确初始化他们,则他们所

2006-09-22 17:04:00 559

原创 c++ tips 2

class C{};sizeof(C)==1目的是为使这个class的object得以在内存中分配独一无二的地址name-mangling(编译器对一些名字进行修改)一般而言,具体继承并不会增加空间或者存取时间上的额外负担出现在derived class中的base class object 有其完整的原样性多继承:class T{ virtual ~T(){}};clas

2006-09-22 16:35:00 726

原创 C++ tips 1

C++相对C而言,可能会出现的时空额外开销:1.虚函数机制,动态邦定2.虚基类3.多重继承下的“一个derived class和其第二或者后继之base的转换”virtual table中有一个指向class所关联的type_info object对指针进行类型转换,大部分情况下并不改变一个指针所含的真正地址,他只影响“被指出的内存的大小和内容”的解释方式。 编译器合成default

2006-09-22 15:45:00 670

原创 Mediator模式

Mediator模式用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。比如一个窗口上的很多控件之间的交互。何时使用一组对象以定义良好但是复杂的方式进行通信。产生的相互依赖关系结构混乱且难以理解。一个对象引用其他很多对象并且直接与这些对象通信,导致难以复用该对象。想定制一个分布在多个类中的行为,而又不想生成太多的子类。

2006-09-21 22:28:00 796

原创 Memento模式

 Memento模式在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。memento是一个保存另外一个对象内部状态拷贝的对象,注意与Prototype模式的区别。何时使用必须保存一个对象在某一个时刻的(部分)状态, 这样以后需要时它才能恢复到先前的状态。如果一个用接口来让其它对象直接得到这些状态,将会暴露对象的实现细节并破坏对

2006-09-21 22:10:00 907

原创 Observer模式

Observer模式定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时, 所有依赖于它的对象都得到通知并被自动更新。何时使用当一个抽象模型有两个方面, 其中一个方面依赖于另一方面。将这二者封装在独立的对象中以使它们可以各自独立地改变和复用。当对一个对象的改变需要同时改变其它对象, 而不知道具体有多少对象有待改变。当一个对象必须通知其它对象,而它又不能假定其它对象是谁。换言之, 你不希

2006-09-21 21:38:00 1116

原创 state模式

state模式当对象的内部状态改变后,其行为也跟着改变。State模式在实际使用中比较多,适合"状态的切换".因为我们经常会使用If elseif else 进行状态切换, 如果针对状态的这样判断切换反复出现,我们就要联想到是否可以采取State模式了.此模式的结构图和strategy模式一样。非要说区别,那么:state模式用于处理对象有不同状态(状态机)的场合,strategy模式用于随不

2006-09-18 22:33:00 669

原创 strategy模式

strategy模式主要是定义一系列的算法,把这些算法一个个封装成单独的类,这些类之间可以交换。更简单的说,对象与其行为(behaviour)这本来紧密联系的两部分被解耦,分别放在了两个不同的类中。这使得对同一个行为,可以方便的在任何时候切换不同的实现算法。而通过对策略的封装,为其提供统一的接口,也可以很容易的引入新的策略。 与state模式很相似。几个显著的特点:1.可以消除不断重复出现的条件语

2006-09-18 22:19:00 711

转载 IPC小结

管道(Pipe)及有名管道(named pipe):管道可用于具有亲缘关系进程间的通信,有名管道克服了管道没有名字的限制,因此,除具有管道所具有的功能外,它还允许无亲缘关系进程间的通信; 信号(Signal):信号是比较复杂的通信方式,用于通知接受进程有某种事件发生,除了用于进程间通信外,进程还可以发送信号给进程本身;linux除了支持Unix早期信号语义函数sigal外,

2006-09-18 20:51:00 791

原创 Visitor模式小节

今天看Scott Meyers的《My Most Important C++ Aha! Moments...Ever》这篇文章(http://www.artima.com/cppsource/top_cpp_aha_moments.html),里面有一点“Understanding what problem Visitor addresses”,这个visitor模式我一直都不是非常清楚,今天再仔

2006-09-18 14:21:00 703

转载 多进程编程

多进程编程写在前面的话    本文主要根据本人在UNIX系统上的编程实践经验总结而成, 既做为自己在一个时期内编程实践的部分总结, 又可成为文章发表. 对UNIX程序员初学者来说是一个小小的经验, 仅供参考; 对UNIX老手来说则不值一哂, 请各位多多指教.一.多进程程序的特点    由于UNIX系统是分时多用户系统, CPU按时间片分配给各个用户使用, 而在实质上应该说CPU按时间片分配给各个进

2006-09-17 15:19:00 771

原创 纪录一下

INITIALIZE-SINGLE-SOURCE(G, s)1  for each vertex v ∈ V[G]2       do d[v] ← ∞3          π[v] ← NIL4  d[s] 0RELAX(u, v, w)1  if d[v] > d[u] + w(u, v)2     then d[v] ← d[u] + w(u, v)3          π[v] ← u

2006-09-12 18:22:00 678

原创 C++中class与struct的区别

class与struct的区别很老的问题了。今天稍微总结了下,有遗漏的地方和错误的地方还望大家补充。关于使用大括号初始化class和struct如果定义了构造函数的话,都不能用大括号进行初始化如果没有定义构造函数,struct可以用大括号初始化。如果没有定义构造函数,且所有成员变量全是public的话,可以用大括号初始化。关于默认访问权限class中默认的成员访问权限是private的,而st

2006-09-11 10:36:00 760

原创 前序+后序=〉(二叉)树的个数

假设前序序列为pre,后序序列为post,他们的长度分别为n,必有:  pre[0]==post[n-1],同时pre[1]为根节点的第一颗子树的根节点,再post中查找pre[1],这样就可以判定出该树的第一颗子树的前序序列和后序序列。同样的道理,可以判断出该树的所有子树的前序和后序序列。递归解之。代码如下: #include iostream>#include string>usi

2006-09-07 22:34:00 988

转载 volatile——多线程程序员最好的朋友

volatile——多线程程序员最好的朋友volatile修正符及让你的编译器为你检查竞态条件(race conditions)Andrei Alexandrescu董恒超 译 我不想破坏你的情绪,但这篇专栏针对多线程编程中最可怕的问题。如果说——正如前面一篇泛型所说的——写出意外安全(exception-safe)的程序很难,但写意外安全的程序和多线程编程比起来就是小孩子的玩意。 用到多线程

2006-09-05 10:49:00 1680 2

原创 上周被鄙视

现实和理想还有很大差距! 

2006-09-03 12:51:00 586

空空如也

空空如也

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

TA关注的人

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