自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 收藏
  • 关注

转载 C++语言的15个晦涩特性

这个列表收集了 C++ 语言的一些晦涩(Obscure)特性,是我经年累月研究这门语言的各个方面收集起来的。C++非常庞大,我总是能学到一些新知识。即使你对C++已了如指掌,也希望你能从列表中学到一些东西。下面列举的特性,根据晦涩程度由浅入深进行排序。1. 方括号的真正含义2. 最烦人的解析3.替代运算标记符4. 重定义关键字5. Placement new6.在声明变量的同时进行分支7.

2014-01-08 19:57:14 545

转载 【串和序列处理 5】总结---自动机,KMP算法,Extend-KMP,后缀树,后缀数组,trie树,trie图及其应用

涉及到字符串的问题,无外乎这样一些算法和数据结构:自动机,KMP算法,Extend-KMP,后缀树,后缀数组,trie树,trie图及其应用。当然这些都是比较高级的数据结构和算法,而这里面最常用和最熟悉的大概是kmp,即使如此还是有相当一部分人也不理解kmp,更别说其他的了。当然一般的字符串问题中,我们只要用简单的暴力算法就可以解决了,然后如果暴力效率太低,就用个hash。当然hash也是一个面试

2012-01-10 09:42:23 1589

转载 【串和序列处理 4】动态查找树比较

我们这个专题介绍的动态查找树主要有: 二叉查找树(BST),平衡二叉查找树(AVL),红黑树(RBT),B~/B+树(B-tree)。这四种树都具备下面几个优势:(1) 都是动态结构。在删除,插入操作的时候,都不需要彻底重建原始的索引树。最多就是执行一定量的旋转,变色操作来有限的改变树的形态。而这些操作所付出的代价都远远小于重建一棵树。(2) 查找的时间复杂度大体维持在O(log(N)

2012-01-09 15:42:48 677

转载 【串和序列处理 3】Suffix Tree 子串匹配结构

一道Amazon的面试题:找出给定字符串里的最长回文。例子:输入XMADAMYX。则输出MADAM。这道题的流行解法是用后缀树(Suffix Tree)。这坨数据结构最酷的地方是用它能高效解决一大票复杂的字符串编程问题:  Suffix Tree : 又称后缀Tree或后缀树。它与Trie树的最大不同在于,后缀Tree的字符串集合是由指定字符串的后缀子串构成的。给定一长度为n的字符串S

2012-01-09 15:14:04 2334

转载 【串和序列处理 2】Trie Tree 串集合查找

Trie 树, 又称字典树,单词查找树。它来源于retrieval(检索)中取中间四个字符构成(读音同try)。用于存储大量的字符串以便支持快速模式匹配。主要应用在信息检索领域。Trie 有三种结构: 标准trie (standard trie)、压缩trie、后缀trie(suffix trie) 。最后一种将在《字符串处理4:后缀树》中详细讲,这里只将前两种。 1. 标准Trie

2012-01-09 14:46:45 1255

转载 【串和序列处理 1】PAT Tree 子串匹配结构

Patricia Tree  简称PAT tree。 它是 trie 结构的一种特殊形式。是目前信息检索领域应用十分成功的索引方法,它是1992年由Connel根据《PATRICIA——Patrical Algorithm to Retrieve Information Coded in Alphanumeric》算法发展起来的。 PAT tree 在字符串子串匹配 上有这非常优异

2012-01-09 14:12:17 704

转载 Java内部类总结

内部类:1,概述内部类是指在一个外部类的内部再定义一个类。内部类作为外部类的一个成员,并且依附于外部类而存在的。内部类可为静态,可用PROTECTED和PRIVATE修饰。(而外部类不可以:外部类只能使用PUBLIC和DEFAULT)。2,分类成员内部类、局部内部类、静态内部类、匿名内部类(图形是要用到,必须掌握)。3,使用方法A,成员内部类:作

2012-01-09 11:00:48 241

转载 C语言异常处理机制——为您的C程序添加异常处理

1、什么是异常        异常一般指的是程序运行期(Run-Time)发生的非正常情况。        异常一般是不可预测的,如:内存不足、打开文件失败、范围溢出等。        UNIX 使用信号给出异常,并当发生异常时转跳到信号处理过程进行异常处理。DOS下的信号对比UNIX系统而已相对较少。        C标准库提供两个特殊的函数:setjmp() 及 longjmp

2012-01-05 16:07:37 437

转载 Linux下的多线程编程

1 引言  线程(thread)技术早在60年代就被提出,但真正应用多线程到操作系统中去,是在80年代中期,solaris是这方面的佼佼者。传统的Unix也支持线程的概念,但是在一个进程(process)中只允许有一个线程,这样多线程就意味着多进程。现在,多线程技术已经被许多操作系统所支持,包括Windows/NT,当然,也包括Linux。  为什么有了进程的概念后,还要再引入线程呢?使用

2012-01-05 15:23:10 245

转载 约数个数与约数和(质因素分解)

求一个自然数N的约数个数与约数和,先把这个自然数分解质因数,表示为:N﹦P1a1·P2a2·P3a3……PKakN的约数的个数为:(a1+1)×(a2+1)×……×(ak+1);N的约数和为:(1+P1+ P12+…+ P1a1)×(1+P2+ P22+…+ P2a2)×……×(1+PK+PK2+…+PKak)。例如:72﹦23×32先找出23的所有(3+1﹦)4个约数:1、2

2011-12-30 10:45:10 1160 1

转载 电脑启动过程

电脑及操作系统的启动过程是一个很复杂的过程,对于我们大多数只是希望把电脑玩的更好一点、处理一些常见问题清晰一点的朋友来说,自然是无需了解到详尽通透——本帖的目的也不在于此。爱好者博墅NSqAW\3?5@K)_A  可是要想把电脑玩的好一点,比如出现启动故障、想要

2011-09-13 22:08:32 1468

转载 全面介绍Windows内存管理机制及C++内存分配实例

(一):进程空间 本文背景: 在编程中,很多Windows或C++的内存函数不知道有什么区别,更别谈有效使用;根本的原因是,没有清楚的理解操作系统的内存管理机制,本文企图通过简单的总结描述,结合实例来阐明这个机制。本文目的:对Windows内存管理机制了解清楚,有效的利用C++内存函数管理和使用内存。1.      进程地址空间1.1地址空间·        32|

2011-09-08 14:29:03 2836

转载 标准C++的类型转换符:static_cast、dynamic_cast、reinterpret_cast和const_cast

C 风格(C-style)强制转型如下: (T) expression // cast expression to be of type T 函数风格(Function-style)强制转型使用这样的语法: T(expression) // cast expressi

2011-09-01 13:43:44 277

转载 约瑟夫环问题的优化

问题描述:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列,求最后一个出列人的编号。用循环的方法模拟这个过程的解,算法复杂

2011-08-11 10:50:49 740

转载 Linux 的多线程编程的高效开发经验

背景Linux 平台上的多线程程序开发相对应其他平台(比如 Windows)的多线程 API 有一些细微和隐晦的差别。不注意这些 Linux 上的一些开发陷阱,常常会导致程序问题不穷,死锁不断。本文中我们从 5 个方面总结出 Linux 多线程编程上的问题,并分别引出相关改善

2011-08-09 12:56:44 198

转载 实现一个无法被继承的C++类

一个类不能被继承,也就是说它的子类不能构造父类,这样子类就没有办法实例化整个子类从而实现子类无法继承父类。我们可以将一个类的构造函数声明为私有,使得这个类的构造函数对子类不可见,那么这个类也就不能继承了。但是,这引出一个问题,客户程序岂不是也无法实例化这个类了?OK,让我们参考一

2011-08-09 12:48:14 226

转载 C++空类默认函数

定义一个空的C++类,例如class Empty{}一个空的class在C++编译器处理过后就不再为空,编译器会自动地为我们声明一些member function,一般编译过去就相当于class Empty{public:Empty(); // 缺

2011-08-09 12:39:31 390

转载 堆排序

一、要实现堆排序首先要理解堆相关的一些重要概念。     (1)什么是堆,堆于优先队列的关系?    堆实际上是优先队列数据结构的实现,也可以说,堆是具有优先队列性质的容器实现。    优先队列是允许下面两个操作的数据结构:Insert Del

2011-08-09 11:57:58 370

转载 优秀程序员45种习惯

态度篇1. 做实事不要抱怨,发牢骚,指责他人,找出问题所在,想办法解决。对问题和错误,要勇于承担。2. 欲速则不达用小聪明、权宜之计解决问题,求快而不顾代码质量,会给项目留下要命的死角。3. 对事不对人就事论事,明智、真诚、虚心地讨论问题,提出创新方案。4. 排除万难,奋勇前进勇气往往是克服困难的唯一方法。学习篇5. 跟踪变化新技术层出不穷并不可怕。坚持学习新技术,读书,读技术杂志,参加技术活动,

2010-03-25 17:11:00 199

转载 一劳永逸:关于C/C++中指针、数组与函数复合定义形式的直观解释

[标题] char *(*(**(*(*(*x[5])(int,float))[][12])(double))(short,long))[][173] ?!今天又捧起久违的K&R C拜读了一遍。其实有点东西在6年前就想写,借着今天这个机会,终于把它写出来了。初看一眼标题中的变量定义感觉是不是很抓狂?:)一直以来,C语言中关于指针、数据和函数的复合定义都是一个难点,其实,理解

2010-03-21 00:48:00 516

空空如也

空空如也

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

TA关注的人

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