自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

nosmatch的专栏

好脑袋比不上烂键盘

  • 博客(151)
  • 资源 (19)
  • 收藏
  • 关注

转载 探索推荐引擎内部的秘密,第 1 部分: 推荐引擎初探

简介: 随着 Web 技术的发展,使得内容的创建和分享变得越来越容易。每天都有大量的图片、博客、视频发布到网上。信息的极度爆炸使得人们找到他们需要的信息将变得越来越难。传统的搜索技术是一个相对简单的帮助人们找到信息的工具,也广泛的被人们所使用,但搜索引擎并不能完全满足用户对信息发现的需求,原因一是用户很难用恰当的关键词描述自己的需求,二是基于关键词的信息检索在很多情况下是不够的。而

2013-07-24 14:29:19 946

原创 Effective C++ 读书笔记(36)

条款36:绝不重新定义继承而来的non-virtual函数class B{public: void func(); ...};class D:public B{public: ...};在上面的简单例子中,如果有下面的调用:D x;B* p = new D();D* q = new D();p->func();q->func();此时上面的两个调用调用的

2013-07-21 17:44:00 889

原创 Effective C++ 读书笔记(35)

条款35:考虑virtual函数意外的其他选择

2013-07-21 17:24:10 734

原创 Effective C++读书笔记(34)

条款34:区分接口继承和实现继承在对Base class 进行public继承的时候,根据Base class中成员函数的类型我们能够得到不同的继承方式:如下:class Shape{public: virtual void draw() const = 0; virtual void error(const std::string& msg); int objectId()

2013-07-21 16:41:08 886

原创 Effective C++读书笔记(33)

条款33:避免遮掩继承而来的名称对于继承的父类中的函数,如果在子类中有同名的函数,则父类中的同名函数都将被隐藏,例如:class Base{private: int x;public: virtual void mf1() = 0; virtual void mf1(int x); virtual void mf2(); void mf3(); void mf3(dou

2013-07-21 15:11:28 745

原创 Effective C++读书笔记(32)

条款32:确定你的public继承塑模出is-a关系以public继承的类,其父类的所有的性质都应该使用与子类,任何需要父类的地方都应该能用子类来代替,任何子类类型的对象也同时是父类的:class Person{...};class Student : public Person{...};void eat(const Person& p);void study(co

2013-07-21 12:16:21 842

原创 Effective C++读书笔记(31)

条款31:将文件间的编译依赖关系降到最低在C++中我们要将接口与实现分离开来,这样只要接口没有改变,对接口应用的客户就可以保持不变,例如:class Person{public: Person(const std::string& name, const Date& birthday, const Address& addr); std::string name() c

2013-07-21 11:19:04 730

原创 Effective C++ 读书笔记(30)

条款30:透彻了解inline函数的里里外外inline函数是直接将函数调用用函数的本体来替换,这样就免去了函数调用时候的消耗,但是由于每次对于函数的调用都会用函数的本体来替换,因此过度的应用inline函数会对程序的代码造成膨胀,会造成指令缓冲的命中率,因此我们在应用inline函数的时候也一定要把握好度!看下面的例子:class Base{public: B

2013-07-20 14:53:29 819

原创 Effective C++ 读书笔记(29)

条款29:为“异常安全”而努力是值得的在程序中抛出异常的时候,带有异常安全的函数会保证:1.不泄露任何的资源2.不允许数据被破坏对于第一种情况可以采用资源管理类的方法来保证资源的释放,我们的函数都要保证异常发生时函数的保证:1.基本承诺,函数发生异常时,对象还能保持正常的状况,但是具体处于那种状态是不确定的2.强烈保证,函数发生异常时,如果函数成功则完全成功,如果失败则

2013-07-20 12:26:29 633

原创 Effective C++ 读书笔记(28)

条款28:避免返回handle指向对象内部成分首先handle是指reference、指针和迭代器等都可以称之为handle,因为她们都是用来取得一个对象的,返回一个handle指向对象的内部成分主要会造成下面的两种情况:1.增大了成员的访问权限,如下例子:class Point{public: Point(int x, int y); ... void set

2013-07-20 11:49:37 964

原创 算法:判断两个字符串是否是变位词

题目:判断两个字符串是否是变位词分析:所谓变位词是指的连个字符串组成的字符是相同的,但是字符的位置是可以不同的,例如:qwerte和eetrwq这两个字符串就是变位词,如果对空间的要求不高则可以建立一个256大小的数组分别映射到ASCII的每一个字符,对前一个字符串遍历在每个字符出现加1,后面字符串中遍历,每个字符出现减1,最后检测数组是否为空,如下:如果对空间有要求,则我

2013-07-17 23:22:36 2067

原创 Effective C++读书笔记(27)

条款27:尽量少做转型动作在C++中尽量的少用类型的转化,只要有类型转化的地方就是有可能会出现问题的地方,在C++中有四种强制类型转化,如下:1、static_cast用法:static_cast(expression)该运算符把expression转换为type-id类型,但没有运行时类型检查来保证转换的安全性。它主要有如下几种用法:①用于类层次结构中基类和子

2013-07-16 23:34:54 694

原创 算法:编写算法移除一个字符串中重复的字符

题目:设计算法并写出代码移除字符串中重复的字符,不能使用额外的缓存空间。注意:可以使用额外的一个或两个变量,但不允许额外再开一个数组拷贝。分析:方法有很多种,这里主要是对字符串中的每个字符与它前面出现过的所有字符进行比较,如果前面出现过就把这个字符删除掉代码如下:从上面的代码可以看出算法的时间复杂度为o(n*n);这里要求的是不能申请额外的空间,否则可以申请

2013-07-16 23:06:12 1773

原创 Effective C++读书笔记(26)

条款26:尽可能延后变量定义式的出现时间当你定义一个变量的时候就要保证这个变量能够在程序中使用到,不要定义无意义的变量,这样就要求我们最好是在变量使用到的时候才做定义,因为如果一个变量定义了却乜有使用可能会造成效率上的降低,毕竟很多变量的构建是要调用对应的构造函数和析构函数的,考虑下面的例子:std::string setName(std::string& name

2013-07-16 08:20:45 757

原创 Effective C++ 读书笔记(25)

条款25:考虑写出一个不抛出任何异常的swap函数

2013-07-16 07:53:11 581

原创 算法:反转一个C风格的字符串

分析:C风格的字符串是以'\0'结尾的字符串,例如"abcdefg"的长度是其实为"abcdefg\0",长度为8;

2013-07-15 22:58:20 889

原创 Effective C++ 读书笔记(24)

条款24:若所有参数皆需要类型转换,请为此采用non-member函数考虑一个有理数的类:class Ration{public: Ration(int numerator = 0, int denominator = 1); int numerator() const; int denominator() const;private: int numerator; in

2013-07-14 22:01:09 759

原创 Effective C++ 读书笔记(23)

条款23:宁以non-member、non-friend替代member函数

2013-07-14 15:59:04 669

原创 Effective C++ 读书笔记(22)

条款22:将成员变量声明为private对于C++而已,封装型是其三大特征之一,之所以封装型是如此的重要,是因为封装型能为接口的使用者提供透明的服务,内部的任何改变对其客户使用者来说都是透明的,都不需要做任何的改变,将class中的成员变量设为private的并且为成员变量设定对应的接口函数,这样外面的调用者只能通过接口函数来使用成员变量,对成员变量的任何改动只要接口不变都是可

2013-07-14 12:33:36 677

原创 Effective C++ 读书笔记(21)

条款21:必须返回对象时别妄想返回reference上一个条款讲解了以pass-by-reference来替代pass-by-value可以很好的增加效率,但是pass-by-reference也是不能乱用的本条款主要讲在函数返回对象的时候不应该让他返回一个reference!上例子:class Ration{public: Ration(int numerator,i

2013-07-14 11:42:45 767

原创 算法:字符串字符重复问题

题目:实现一个算法来判断一个字符串中的字符是否唯一(即没有重复).不能使用额外的数据结构。(即只使用基本的数据结构)分析:对于字符串的组成不确定,是ASCII码还是英语的26个字母,对于不同的组成可能有不同的处理方法,本题目可以设置一个数组组用每个元素的真假来标记在字符串中是否出现过该元素。情况1.字符串是由26个英文字母组成,其中大小写不敏感情况2.字符串是由AS

2013-07-14 11:16:53 1398

原创 Effective C++ 读书笔记(20)

条款20:宁以pass-by-reference-to-const替换pass-by-value考虑下面的例子:class People{public: Person(); virtual ~People(); ...private: std::string name; std::string address;};class Student:public Peopl

2013-07-13 16:57:51 596

原创 Effective C++ 读书笔记(19)

条款19:设计class犹如设计type条款主要的是介绍在设计class的时候应该注意的问题,只要有以下几点:1.新的type的对象应该如何被构造和析构,主要是指的新的type的构造函数和析构函数的定义2.对象的初始化和对象的赋值有什么样的区别,主要是新type的复制构造函数和赋值函数的定义3.新的type的对象如果被passed by value 将以为这什么?4.什么是

2013-07-13 15:42:33 539

原创 Effective C++ 读书笔记(18)

条款18:让接口更容易的被使用,不易误用接口设计主要是给应用接口的人使用的,他们可能不是接口的设计者,这样作为接口的设计者就要对接口的定义更加易懂,让使用者不宜发生误用,例如对于一个时间类:class Date{public: Data(int month, int day, int year){ .... }};在应用Date类的时候,对于D

2013-07-13 15:06:31 602

原创 Effective C++ 读书笔记(17)

条款17:以独立的语句将new的资源放入到智能指针中考虑以下情况:int prirority();void processWidget(std::shared_ptr pw, int priority);我们在对processWidget函数进行调用的时候,可以采用如下形式:processWidget(std::shared_ptr pw(new widget), prior

2013-07-12 09:15:12 565

原创 Effective C++ 读书笔记(16)

条款16:当成对的使用new 和 delete时,要确保new 和 delete的格式是相同的这个条款比较简单,但是却很容易出错,首先我们看下当我们使用new和delete的时候编译器为我们做了什么,当我们调用new操作符的时候,编译器会首先在内存中帮我们申请一块空间,然后调用对应对象的构造函数,想对应的当我们调用delete的时候,编译器会首先在该空间调用对应的析构函数然后再

2013-07-12 08:24:37 568

原创 Effective C++ 读书笔记(15)

条款15:在资源管理类中提供对原始资源的访问

2013-07-12 08:06:50 542

原创 Effective C++ 读书笔记(14)

条款14:在资源管理类中小心copying行为在条款中主要的介绍了智能指针的用法,那里解决为问题是指向一个heap空间的指针的申请与释放问题,然而并非所有的资源都是在heap中申请的,这时候智能指针就不适合了,例如对于类型为Mutex的互斥器对象,只有lock和unlock的操作,在这里lock与unlock是成对存在的,为了防止调用lock后忘记unlock我们可以自己管理资

2013-07-11 23:22:30 791

原创 Effective C++ 读书笔记(13)

条款13:以对象来管理资源在C++中我们经常会涉及到资源的申请与申请,一般都是由关键字new 和 delete来操作的,两者都是成对存在的,缺一不可,否则会出现意想不到的问题,例如:class Investment{.....};Investment* pinv = createInvestment();我们在使用完后要动态的释放掉pinv所指向的资源,例如在

2013-07-11 08:53:58 659

原创 Effective C++ 读书笔记(12)

条款12:复制对象时勿忘其每一个成分C++中类会将成员都封装起来,类的copy操作只能通过赋值函数和复制构造函数,在进行对应的copy操作的时候注意要将成员的没一个成员进行对应的复制!例如:

2013-07-10 22:14:43 508

原创 Effective C++ 读书笔记(11)

条款11:在operator=中处理“自我赋值”自我赋值是指将对象自己赋值给自己;例如People p;...p = p;虽然这看起来比较好笑,但是这种情况很可能会出现的,例如当你对两个指针进行赋值操作的时候,两个指针指向的对象就可能是同一个,在C++中,由于多态的出现,类型不同的指针或者引用也可能指向同一个对象,例如:class People{...};class

2013-07-10 10:18:48 642

原创 Effective C++ 读书笔记(10)

条款10:让操作符=返回一个reference to *this对一些存在的操作符重载的时候,最好是要兼容这些操作符本身就有的属性,例如对于操作符=,可以实现连等的操作,例如int a = b = c = 10;这样可以认为10先赋值给c,然后c的值又赋值给b,b的值最后赋值给a,同样的对于类中操作符=的重载也要支持这样的操作,那么可以将operator返回操作符的左值,为了效

2013-07-10 09:31:43 931

原创 Effective C++ 读书笔记(9)

条款九:绝对不要在构造函数或者析构函数中调用virtual函数首先上例子:class People{public: People(); virtual void task() const = 0; ....};People::People(){ .... task();}class Studeng : public People{public: virtua

2013-07-10 00:54:36 616

原创 Effective C++ 读书笔记(8)

条款八:别让异常逃离析构函数异常判断是与C语言不同一个功能,带来方便的同时也会带来一些问题,例如:class widget{public: .... ~widget(){}};void doSomething(){  std::vecotr v; .....}在doSomething的函数结束的时候,vector中的对象会对应的调用widget类

2013-07-10 00:28:42 594

原创 Effective C++ 读书笔记(7)

条款七:为多态的基类声明virtual析构函数任何的类都会有构造函数和析构函数,当你没有显示的定义的时候编译器会给你定义默认的构造和析构函数,普通的类也就是不做任何类的父类的类,其对应函数的定义与其他成员函数的定义是相类似的,对于基类,由于基类的属性要被对应的子类继承,因此也会有不同的属性!在父类中,如果存在任何的virtual虚函数,那么这个类的析构函数也最好声明为virtu

2013-07-10 00:05:19 584

原创 Effective C++ 读书笔记(6)

条款六:如果不想使用编译器自动生成的函数,就应该明确的拒绝(不要搞暧昧!)C++是一个比较复杂的语言,包含的模块比较多,我们写程序的一个原则就是不用的功能就要明确的禁止掉,这样就会防止在意想不到的情况下出现调用,C++瞒着你在背后做了太多的事情了!对于一个独一无二的对象,例如前面的People对象,每个人都是唯一的,因此我们不想在People类中出现copy构造函数和

2013-07-08 23:21:27 557

原创 Effective C++ 读书笔记(5)

条款五:了解C++默默编写并调用那些函数是否处在空的类?假设定义类为class Empty{};当C++编译器处理过后会变成如下的形式:class Empty{ Empty(){} ~Empty(){} Empty& operator=(const Empty& rhs){.....} Empty(const Empty& rhs){.....}}可以分别称为构造函数,

2013-07-08 22:51:18 508

原创 Effective C++ 读书笔记(4)

条款四:确定对象在使用前已经初始化这一条也可以说是在成员定义的时候同时赋予一个初始的数值,有过C编程经验的人对指针定义的初始化应该不陌生,指针定义的时候同时给予一个初始化的值,一般是为NULL,这样就不会出现野指针的情况,同时在指针空间释放的时候也注意将对应的指针赋予一个NULL的值,这样就不会出现指针指向一个无效的地址的情况!同样在C++里面,类作为主要的自定义类型,其成员

2013-07-08 22:24:41 743

原创 Effective C++ 读书笔记(3)

条款三:尽量的使用const条款二对const关键字进行了简单的介绍,主要是介绍了const对一些预处理定义的替换使用,本条款主要是讲const作为一个常量修饰的一个寓意的约束,总之就是一句话:在能使用const的地方尽量使用const!1.const对于基本内置类型的约束,主要指的是指针类型。对于指针类型有下面两种约束的方式:const int * pi;int

2013-07-07 23:05:26 610

原创 Effective C++ 读书笔记(2)

条款二:尽量以const,enum,inline替换#define对于条款二,可以理解为能在编译器期间做的事情不要放到预编译器中处理,预编译器是对程序编译之前的一个预先的处理,不会检查对代码最任何的检出,这样如果在编译期间发现问题,如果问题是我们自己直接造成的那可能会很快的定位,想反的如果问题在预编译期间做了一些处理,那样在编译中出现的问题可能会显示预编译中的问问题,这样对问题定位不方便,

2013-07-07 17:10:14 614

posix 多线程程序设计 源代码

posix 多线程程序设计 的源代码,验证过,是学习多线程的好参考材料!

2012-01-11

浙江大华笔试(A卷和B卷)

今年最新的大华笔试试卷,A卷和B卷,2011年10月10号

2011-10-18

网易笔试题(2011年10月10日浙大玉泉)

最新网易的笔试题目,拍照出来然后整理的word版的,个人被网易鄙视了,希望大家加油哦...2011.10.10

2011-10-11

支付宝2011年笔试题

最新的支付宝笔试题目包含C++和java哦...越是难得的越有用哦...

2011-04-21

ACM初识. pdf

ACM的介绍以及初步入门知识,这是一个学校的培训课件,挺好的,看看……

2010-03-22

com原理及应用.pdf

本书不仅讲解了关于com的原理及相关的知识,还讲解了关于MTS和COM+的知识……

2010-03-22

gcc中文手册.pdf

本手册页内容摘自 GNU C编译器的完整文档,是个好东西,难得……

2010-03-22

打字游戏-C语言(源码)

打字游戏,纯c语言编写的,是我自己一点点敲得,绝对能运行的,如果你正在从初级c语言向高级转变,多看代码……

2010-03-19

graphics.h和graphics.lib

graphics.h和graphics.lib有什么作用大家都知道了吧,呵呵

2010-03-15

《JSP课程设计案例精编》-杨昭-源代码

《JSP课程设计案例精编》-杨昭-源代码,《JSP课程设计案例精编》-杨昭-源代码

2010-03-15

ajax基础概念与典型案例.rar

全书几乎涵盖了目前Ajax涉及的所有技术,是一本学习Ajax开发技术的手册。 

2010-03-15

opengl入门到精通课件.rar

费了好大劲才弄好的openGL的课件,中文版的,呵呵,少见……

2010-03-15

王爽-汇编原理.+答案清晰版 pdf

王爽的汇编原理通俗易懂,是学习汇编的基础教材,习题解答是一个网友总结的很好……

2010-03-15

数据结构算法模板实现 C++

数据结构算法模板实现,不但熟悉了数据结构还能对模板的应用熟悉……

2010-03-14

万年历系统. c++

c++源码,万年历系统.rar,好不好就不用多说了吧,保证能顺利运行的……

2010-03-14

Visual C++ 入门高清pdf(经典).

书是高清的,内容很经典,适合仔细的阅读……

2010-03-13

Python 学习笔记.pdf

Python 学习笔记,通俗易懂,能很快入门,很好的学习资料……

2010-03-13

C语言标准与实现.pdf

能很深入的帮助你了解c语言的编程思想,很好,很实用,值得一看……

2010-03-12

windows游戏编程大师技巧

windows游戏编程大师技巧,游戏编程的经典书籍……

2010-03-12

空空如也

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

TA关注的人

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