net_assassin的专栏

知识改变命运,技术改变生活

Effective C++ 读书笔记(七) 模板与泛型编程

7 模板与泛型编程 面向对象virtual         运行时多态     显示接口      重载、template和泛型   编译期多态      隐式接口 •    条款41:了解隐式接口和编译期多态                     Understand implicit i...

2013-08-30 15:14:07

阅读数 3868

评论数 0

Effective C++ 读书笔记(六) 继承与面向对象设计

条款32:确定你的pubilc继承塑模出is-a关系                                    Make sure public inheritance models “is-a” –  C++进行(OOP)面向对象编程,最重要的一个规则是:public inherit...

2013-08-30 13:48:54

阅读数 3827

评论数 0

编程之美3.6——编程判断两个链表是否相交

问题: 给出两个单向链表的头指针,而两个链表都可能带环,判断这两个链表是否相交,并且给出他们相交的第一个节点。 解法:参考http://blog.csdn.net/ldong2007/article/details/4544203 (1)判断链表是否存在环 设置两个链表指针(fast...

2013-08-24 17:33:47

阅读数 3749

评论数 0

数组分割

问题: 1. 有一个无序、元素个数为2n的正整数数组,要求:如何能把这个数组分割为两个子数组,子数组的元素个数不限,并使两个子数组之和最接近。 1. 解法1: 由于对两个子数组和最接近的判断不太直观,我们需要对题目进行适当转化。我们知道当一个子数组之和最接近原...

2013-08-24 10:47:20

阅读数 4792

评论数 0

最长递增子序列 O(NlogN)算法 ( DP + 二分查找)

今天看编程之美,看到最长递增子序列问题。解法二看了两遍感觉越来越糊涂。 感觉表述有欠妥之处。它不应该说长度为i的最大值的最小值,应该说成长度为i的序列中尾端最小的值。不知道表达明白了没有。 看下面这个帖子吧,感谢felix的分享。 看了好久好久,现在终于想明白了。 试着把它写下来,让自己更明白。 ...

2013-08-23 22:57:51

阅读数 3823

评论数 0

算法-求二进制数中1的个数

问题描述 任意给定一个32位无符号整数n,求n的二进制表示中1的个数,比如n = 5(0101)时,返回2,n = 15(1111)时,返回4 这也是一道比较经典的题目了,相信不少人面试的时候可能遇到过这道题吧,下面介绍了几种方法来实现这道题,相信很多人可能见过下面的算法,但我相信很少...

2013-08-22 20:20:36

阅读数 3679

评论数 0

九种常用排序的性能分析总结

间间断断的将9种排序实现,并且将其以博客笔记的形式记录下来;现在就该来综合的分析这九种排序,让我们先来看看其算法复杂度和稳定性的分析结果: 算法复杂度以及稳定性分析 算法名称 平均时间 辅助空间 稳定性 冒泡排序 O(n2) O(1) 是 选...

2013-08-19 20:49:06

阅读数 3925

评论数 0

求一个字符串中连续出现次数最多的子串

/* Author: Mcdragon Date: 15-07-11 21:17 Description: 求一个字符串中连续出现次数最多的子串. 基本算法描述: 给出一个字符串abababa 1.穷举出所有的后缀子串 substrs[0] = a...

2013-08-19 20:41:30

阅读数 3195

评论数 0

Chapter 3 | Stacks and Queues

Whether you are asked to implement a simple stack / queue, or you are asked to implement a modified version of one, you will have a big leg up on oth...

2013-08-16 19:36:51

阅读数 3331

评论数 0

Const 重载解析(const参数重载 和 const成员函数重载)

书上和网上在很多地方都对const 的重载做了一些解释,但感觉都不是很详细。还有很多同学在不同的地方发问关于const 重载的问题,这里我又重新看了一下,做了一个简单的分析也可能有不对的地方,欢迎讨论。 所谓重载,是指允许存在多个同名函数,而这些函数的参数表不同,即函数名相同但函数的签名不同。重...

2013-08-16 10:26:54

阅读数 5231

评论数 2

Chapter 2 | Linked Lists Cracking

2.1  Write code to remove duplicates from an unsorted linked list. FOLLOW UP How would you solve this problem if a temporary buffer is not allowed? ...

2013-08-15 16:13:20

阅读数 1517

评论数 0

Solutions to Chapter 1 | Arrays and Strings

1.1 Implement an algorithm to determine if a string has all unique characters. What if you can not use additional data structures? 译文: 实现一个算法来判断一个...

2013-08-14 17:00:56

阅读数 990

评论数 0

设计模式 连连看

2013-08-13 16:58:44

阅读数 553

评论数 0

Proxy 模式

作用: 为其他对象提供一种代理以控制对这个对象的访问 #include using namespace std; class Subject { public: Subject(){} virtual ~Subject(){} virtual void requ...

2013-08-13 16:07:28

阅读数 687

评论数 0

Effective C++ 读书笔记(五) 实现

5 实现           大多数情况下,适当提出拟的类定义以及函数声明,是花费最多心力的两件事。尽管如此,还是有很多东西需要小心:太快定义变量可能造成效率上的拖延;过度使用转型(casts)可能导致代码变慢又难维护,又招来微妙难解的错误;返回对象“内部数据之号码牌(handls)”可能会破坏...

2013-08-13 15:02:53

阅读数 690

评论数 0

Template Method 模式

Method模式 作用: 定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。TemplateMetho d 使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 UML结构图: 现在看具体例子  泡茶喝泡咖啡

2013-08-12 19:59:32

阅读数 630

评论数 0

Singleton模式

单线程singleton模式 #include using namespace std; template class Singleton { public: static T* getInstance() { if( !instance ) ...

2013-08-11 21:33:21

阅读数 547

评论数 0

Effective C++读书笔记(四) 设计与声明

4 设计与声明 •    软件设计,是“令软件做出你希望它做的事情”的步骤和做法,通常以颇为一般性的构想开始,最终演变成十足的细节,以允许特殊接口(interface)的开发,这些接口而后必须转换为C++声明式。 条款18:让接口容易被正确使用,不易被误用                Makei...

2013-08-09 19:32:33

阅读数 630

评论数 0

C++ 模板类型萃取技术 traits

自从C++中引入了template后,以泛型技术为中心的设计得到了长足的进步。STL就是这个阶段杰出的产物。STL的目标就是要把数据和算法分开,分别对其进行设计,之后通过一种名为iterator的东西,把这二者再粘接到一起。设计模式中,关于iterator的描述为:一种能够顺序访问容器中每个元素的...

2013-08-09 16:20:15

阅读数 2731

评论数 1

Effective C++读书笔记

Effective C++ 改善程序与设计的55个具体做法 让自己习惯C++ 条款01:视C++为一个语言联邦 条款02:尽量以const,enum,inline替换#define 条款03:尽可能使用const 条款04:确定对象被使用前已被初始化 构造、析构、赋值 条款05:了解C++默认编写...

2013-08-08 20:17:21

阅读数 648

评论数 0

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