自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

net_assassin的专栏

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

  • 博客(30)
  • 资源 (2)
  • 收藏
  • 关注

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

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

2013-08-30 15:14:07 4056

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

条款32:确定你的pubilc继承塑模出is-a关系                                   Make sure public inheritance models “is-a”–  C++进行(OOP)面向对象编程,最重要的一个规则是:public inheritance (公开继承)意味“is - a”(是一种)关系。–  如果你令class D(“de

2013-08-30 13:48:54 3991

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

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

2013-08-24 17:33:47 3885

转载 数组分割

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

2013-08-24 10:47:20 5238

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

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

2013-08-23 22:57:51 3975

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

问题描述任意给定一个32位无符号整数n,求n的二进制表示中1的个数,比如n = 5(0101)时,返回2,n = 15(1111)时,返回4这也是一道比较经典的题目了,相信不少人面试的时候可能遇到过这道题吧,下面介绍了几种方法来实现这道题,相信很多人可能见过下面的算法,但我相信很少有人见到本文中所有的算法。如果您上头上有更好的算法,或者本文没有提到的算法,请不要吝惜您的代码,分享的

2013-08-22 20:20:36 3827

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

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

2013-08-19 20:49:06 4061

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

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

2013-08-19 20:41:30 3387

翻译 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 other candidates if you can flawlessly work with stack

2013-08-16 19:36:51 3449

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

书上和网上在很多地方都对const 的重载做了一些解释,但感觉都不是很详细。还有很多同学在不同的地方发问关于const 重载的问题,这里我又重新看了一下,做了一个简单的分析也可能有不对的地方,欢迎讨论。所谓重载,是指允许存在多个同名函数,而这些函数的参数表不同,即函数名相同但函数的签名不同。重载并不是面向对象编程的特有属性,这是因为重载是在编译阶段实现的,编译器根据函数不同的参数表,对同名函数

2013-08-16 10:26:54 6339 2

翻译 Chapter 2 | Linked Lists Cracking

2.1 Write code to remove duplicates from an unsorted linked list.FOLLOW UPHow would you solve this problem if a temporary buffer is not allowed?译文:从一个未排序的链表中移除重复的项进一步地,如果不允许使用临

2013-08-15 16:13:20 1701

翻译 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 1117

原创 设计模式 连连看

2013-08-13 16:58:44 693

原创 Proxy 模式

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

2013-08-13 16:07:28 791

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

5 实现          大多数情况下,适当提出拟的类定义以及函数声明,是花费最多心力的两件事。尽管如此,还是有很多东西需要小心:太快定义变量可能造成效率上的拖延;过度使用转型(casts)可能导致代码变慢又难维护,又招来微妙难解的错误;返回对象“内部数据之号码牌(handls)”可能会破坏封装并留给客户虚吊号码牌;为考虑异常带来的冲击则可能导致资源泄漏和数据败坏;过度热心地inlining

2013-08-13 15:02:53 860

原创 Template Method 模式

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

2013-08-12 19:59:32 733

原创 Singleton模式

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

2013-08-11 21:33:21 644

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

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

2013-08-09 19:32:33 763

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

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

2013-08-09 16:20:15 3599 2

原创 Effective C++读书笔记

Effective C++ 改善程序与设计的55个具体做法让自己习惯C++条款01:视C++为一个语言联邦条款02:尽量以const,enum,inline替换#define条款03:尽可能使用const条款04:确定对象被使用前已被初始化构造、析构、赋值条款05:了解C++默认编写并调用哪些函数条款06:若不想使用编译器自动生成的函数,就该明确拒绝条款07:为

2013-08-08 20:17:21 751

原创 Effective C++读书笔记(三) 资源管理

3 资源管理所谓资源就是,一旦用了它,将来必须还给系统。C++程序中最常使用的资源就是动态分配内存(如果你分配内存却从来不曾归还它,会导致内存泄露),但内存只是你必须管理的众多资源之一。 条款13:以对象管理资源            Use object to manage resources.•    把资源放进对象内,我们便可依赖C++的“析构函数自动调用机制”确保资源被

2013-08-08 19:51:47 895

原创 public、protected、private继承

C++类继承关系问题    在C++中继承主要有三种关系:public、protected和private。这三种继承关系中public继承是最为常用的一种继承关系,代表了接口继承含义,而他们分别具体代表了什么含义呢?1. public   从语义角度上来说,public继承是一种接口继承,根据面向对象中的关系而言就是,子类   可以代替父类完成父类接口所声明的行为,也就是

2013-08-08 15:24:17 843

转载 C++的名称查找顺序

1。符号查找(对于函数此时只看名字,不看参数)    大致顺序是    (1)如果有限定名( XXX:: )那么就直接在XXX里查找    (2)函数局部名字空间    (3)(如果是成员)类名字空间    (4)递归向上至所有基类的名字空间    (5)当前名字空间    (6)递归向外至所有外层名字空间,    在任一层里, 用using导入的符号和该层的其他符

2013-08-06 21:34:31 966

原创 Effective C++读书笔记(二)构造、析构、赋值

•条款05:了解C++默默编写并调用哪些函数•Know whatfunctions C++ silently writes and calls–C++会为默认的空类(emptyclass)添加•Default 默认构造函数•Copy 构造函数•析构函数•Copy assignment 复制赋值操作符–唯有这些函数被调用时,它们才会被编译器创建出来。–•条款06:

2013-08-06 11:22:01 808

原创 设计模式——装饰者模式(Decorator)

装饰模式:动态地给一个对象添加一些额外的职责。就增加功能来说,装饰模式相比生成子类更为灵活。有时我们希望给某个对象而不是整个类添加一些功能。类继承可能会带来类数量爆炸等问题,设计死板。巴克莱咖啡,分店几乎开遍世界各地。他们发展的实在是太快了,所以他们此时正在急于实现一套由计算机管理的自动化记账系统。在第一次研究了他们的需求以后,开发者设计了如下图的类结构:

2013-08-05 21:49:39 849

原创 Effective C++ 读书笔记(一)让自己习惯C++

1 让自己习惯C++条款01:  视C++为一个语言联邦        View C++ as a federation oflanguages           –  C。说到底C++仍是以C为基础。区块(blocks)、语句(statements)、预处理器(preprocessor)、内置数据类型(built-in data types)、数组(arrays)、指针(p

2013-08-05 15:09:14 876

转载 C++拾遗

因为C++实在是过于复杂了,时不时都会碰见一些晦涩的细节,因此特意发个帖子,留好位置,随时添加Item 1    前置声明    当不需要class A的完整定义而只需要其名称时,可以通过前置声明函数来避免包含class A对应的头文件,这样可以减少编译依赖关系    然而,需要注意的是,string和iostream不是类型名,而是typedef;由于标准不允许向st

2013-08-04 19:50:45 747

原创 non-local static对象初始化

C++中的static对象是指存储区不属于stack和heap、"寿命"从被构造出来直至程序结束为止的对象。这些对象包括全局对象,定义于namespace作用域的对象,在class、function以及file作用域中被声明为static的对象。其中,函数内的static对象称为local static 对象,而其它static对象称为non-local static对象。    这两

2013-08-04 16:08:34 1033

原创 设计模式——工厂模式

工厂模式工厂模式就是将对象实例化的过程封装起来,成批次的构造对象。应用情景小故事:         假设有个刚起步的加工儿童男装小手工作坊,此时生产还比较单一,只能加工一款式A。大多客户都是散户,订单也很少,随来订单随做。那此时的模式结构如下图:#include using namespace std;class ClothBoy { public: v

2013-08-04 10:56:11 785

转载 C++类对应的内存结构

提示1:对“内存结构”表示有疑问或不解的,先参考:http://blog.csdn.net/guogangj/archive/2007/05/25/1625199.aspx,本文使用的表示方法和VC6的Memory视图一致,即:左上表示低位。 提示2:下文提到的“类大小”严格上来说是该类经过实例化的对象的大小。当然了,光研究长度的话,两者差别不大,因为:CClass

2013-08-01 17:16:52 654

Begin game programming

本资源对应 net_assassin 的博客专栏中的源代码。 简单易懂 敬请阅读

2012-08-24

DirectX游戏编程入门——第二部分(游戏编程工具箱) ——渲染3D模型文件

这资源是与博文中讲解内容配套的源代码。3D模型渲染部分

2012-08-05

空空如也

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

TA关注的人

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