读书笔记
文章平均质量分 87
ithiker
"All problems in computer science can be solved by another level of indirection."
展开
-
学习类的抽象——《C++编程风格》读书笔记(一)
一:类的抽象要点1.将共同的抽象提取出来放到基类。2.一个类应该描述一组对象。3.如果派生类之间的区别在于属性,则用数据成员来表示;如果在于行为,则用虚函数来表示。4.如果通过公有继承来产生派生类,那么这个派生类应该是其基类的特化。5.多态并不是所有程序设计问题的解决方案。二:实例实现一个程序,程序的功能是确定一改计算机中的各种配置的价格。配置一台计算机时,我们需要作出原创 2010-01-27 16:04:00 · 1022 阅读 · 0 评论 -
负载均衡背景知识
负载均衡背景知识原创 2011-05-28 20:24:00 · 2142 阅读 · 0 评论 -
《TCP/IP协议:卷一》读书笔记(一)
第一章1.关于分层:TCP/IP协议分为4层:链路层,网络层,运输层,应用层;我们平时所说的2层交换机、3层交换机、2层网络等等是依照OSI(Open System Interconnection,开放系统互连)七层网络模型来说的。在TCP/IP协议中,应用程序通常是一个用户进程,下三层一般在操作系统内核中运行,处理通信细节。2.应用层和运输层使用端到端的协议,网络层提供的是逐跳协议。端系原创 2012-01-15 22:00:18 · 1242 阅读 · 0 评论 -
大数据观点:Big data is nothing without big analysis
大数据,变革着我们生活的方方面面:2009年甲型H1N1流感爆发的时候,谷歌能够通过及时分析关键词,预测流感。2003年,埃齐奥尼根据大量的飞行记录创建了机票价格预测系统Forecast,帮助人们节省了大量资金(这和我们现在的qunaer还不同,qunaer提供的是一种比价和机票订购服务)。这是一种新型能力:通过对海量数据进行分析,获取巨大的产品或服务。大数据是人们在大规模数据的基础上可以做到的事原创 2013-03-22 22:06:43 · 2168 阅读 · 1 评论 -
Math Tips
加法法则:无重复元素A,B相加,得到AUB的元素数:|AUB|=|A|+|B|;容斥原理就是考虑了重复元素的加法法则:|AUB|=|A|+|B|-|A^B|; 置换(substitution):将n个事物按顺序进行排列称为置换;不通置换总数为n!排列(permutation):从n个事物取k个出来进行按顺序摆放称为排列;不同排列总数为P(n,k);组合(combinatio原创 2013-03-25 00:16:50 · 1576 阅读 · 1 评论 -
Before the Running of C/C++ Programs
C/C++程序在运行之前做了大量的工作:预处理,编译,链接等等,理解这些,对程序更好的执行非常有帮助。 计算机只能识别二进制码,也就是机器码(Machine code),汇编语言是一些列机器码的简单集合。高级语言可以方便程序员来快速编写程序,但是最终也需要转换为汇编语言或机器码。将高级语言转换为机器码的转换器叫做编译器(Interpreter)。原创 2014-02-17 00:41:56 · 1559 阅读 · 0 评论 -
Boost.Asio 介绍--之二
上一篇介绍了Boost.Asio的一些特性,但是相对抽象和离散,这篇博客从Boost.Asio的基础知识一步步深入,读完之后对Boost.Asio会有全面的了解和掌握。Boost.Asio通过采用C++以及Boost库的语法特性,提供跨平台的异步网络IO能力。因此使用Boost.Asio需要基本的网络知识,C++、Boost知识。原创 2014-03-30 23:48:34 · 2130 阅读 · 0 评论 -
<<Effiective STL>>读书笔记
《Effective STL》原创 2014-11-30 09:17:52 · 1118 阅读 · 0 评论 -
《C和C++代码精粹》读书笔记
最近看了>, 设计到C++的指针,异常处理等方方面面,其中有些自认为非常不错的代码,在工作中非常值得借鉴。1.指向成员函数的指针A#includeusing namespace std;class C{ public: void f(){ cout<<"C::f\n";} void g(){cout<<"C::g\n";}};int main原创 2014-11-09 01:16:09 · 1601 阅读 · 0 评论 -
《泛型编程与STL》读书笔记
通读《泛型编程与STL》,总的感觉是这本书前后反差较大,前半部分非常抽象,后半部分-类似一个API速查手册,相对简单。 STL主要涉及三个方面:容器,迭代器,算法,各自职责为:容器存数据,迭代器取数据,算法操纵数据。它们之间的简单关系是:算法通过迭代器操作容器,容器通过迭代器访问自身数据元素。可以说,迭代器做到了让算法和容器解耦,同时,模板又做到了让迭代器与数据类型解耦。...原创 2014-12-25 20:43:15 · 2034 阅读 · 0 评论 -
《Introduction to Information Retrieval》读书笔记(三)
索引压缩原创 2010-09-05 22:08:00 · 2202 阅读 · 2 评论 -
《Introduction to Information Retrieval》读书笔记(二)
<br />词典<br />1.在反文档索引的过程中,词语的查找操作用到了一种经典的数据结构:词典(dictionary)。词典的实现有两种普遍的实现方法:哈希(hash)与查找树。<br />2.哈希已经被用在了一些搜索引擎的词典查找中:每个词语(Key)将会被散列到一个足够大的整数空间去。这样散列冲突的可能性极小;如果发生冲突,也可通过某种方法修复。在查询阶段,只需将查询词散列到该整数空间,找到对应的后缀即可。哈希方法的缺点是:如果查找词有微小的变动,它们也将会被散列到不同的整数,如resume,rès翻译 2010-08-28 17:02:00 · 1460 阅读 · 0 评论 -
虚函数——《C++编程风格》读书笔记(二)
1.例子 设计一个车辆管理程序,程序对车辆进入车库与离开车库进行记录。2.代码 #include #include class Vehicle{protected: char* plate;public: Vehicle() { plate = NULL;} Vehicle(char* p) { plate = new char[原创 2010-01-28 18:56:00 · 868 阅读 · 0 评论 -
一致性——《C++编程风格》读书笔记(三)
对于一个类,可以通过类的接口和类的实现这两方面来进行观察。类的接口由类的公有成员定义,它决定了这个类所创建的对象能够为程序其它部分中的客户代码提供什么样的服务;类的实现是帮助完成这些服务的功能,它们通常是作为类的私有成员被封装起来,客户代码是无法进行反问的。设计一个类时,应注意两点:接口必须能够代表一致的抽象,而实现则必须使得对象在行为上与这个抽象保持一致。 状态:任何原创 2010-02-02 19:51:00 · 1531 阅读 · 2 评论 -
不必要的继承——《C++编程风格》读书笔记(四)
如果要理解派生类和基类之间的继承关系,那么很重要的一点就是分别对继承关系中的接口部分和实现部分进行分析。下面是一个表面上非常适合使用继承的示例,不过,在对基类和派生类的接口和实现进行了详细的研究后,我们会对这个类的代码进行大量改进。闲话少说,上代码!#include#include#includeclass Stack{private: int to原创 2010-02-27 08:45:00 · 985 阅读 · 0 评论 -
效率(大数加法)——《C++编程风格》读书笔记(五)
C++的广泛应用要得益于它的一些底层特性,例如内联函数,它可以使我们编写出效率更高的程序。编写程序时,程序员必须知道将主要的精力放在程序的那个部分,才能使程序的运行效率更高。例如,在程序中,如果随意创建冗余的对象,则可能会付出沉重的性能代价。在程序的源代码中,我们不一定能够看到所有的对象。例如,编译器可能会创建临时对象来作为函数参数。那些需要临时对象的语法规则将使我们难以准确地原创 2010-03-01 19:35:00 · 2286 阅读 · 0 评论 -
有限状态机(FSM)——《C++编程风格》读书笔记(六)
这章主要研究的是一个有限状态机(finite state machine),简称FSM。当其获得一个字符时,FSM将发生转换,即从当前状态转换到另一状态。有限状态机(FSM)是一种抽象的机制,他在任意时刻都处以有限状态集合中的某一个状态。 我们研究的一个FSM的转换规则是(不能上图,口述下): {1,A,2},{1,B,3},{1,C,4},{1,D,原创 2010-03-03 22:43:00 · 8945 阅读 · 11 评论 -
多重继承——《C++编程风格》读书笔记(七)
当我们希望在类之间对多个“是一种”(is-a)的关系进行建模时需要用到多重继承,例如,一艘游艇(houseboat)既是一条船(boat),也可以是一座房子(houseboat)。然而多重继承很难以被高效的使用;多重继承机制有时带来的作用也是有限的。分清什么时候需要用到多重继承,什么时候不要,也是一个难点。 1.多重继承的二义性 程序1 带有二义性的原创 2010-03-20 15:25:00 · 1428 阅读 · 0 评论 -
Effective c++ 读书笔记
在c中,有malloc无free,会导致memory leak;c++中有new无delete亦然。如果你在调用new时使用了[],则你必须在调用delete时也使用[];如果你在调用new时没有用了[],那么你也不应该在调用delete时也用[];#define max(a,b) ((a) > (b) ? (a):(b)) 在使用max(++a,b)时有缺陷。改正:inline in原创 2010-04-03 12:05:00 · 813 阅读 · 0 评论 -
《more effective c++》基础部分读书笔记
1. 多态和指针算术不能混合运用。数组对象几乎总是会涉及到指针的算术运算,故数组和多态不要混合运用。(T3,指条款3,下同)2. 大部分纯虚函数并没有实现码,但是纯虚析构函数是个例外。(T33)3. 将具象基类以抽象基类取而代之,减少了企图以多态方式对待数组的机会。(T33)4. 如果你有两个具象类C1和C2,而你希望C2以public方式继承C1,你应该将原本的双类继承体系改原创 2010-04-27 08:41:00 · 741 阅读 · 0 评论 -
《计算机程序设计与艺术》问题摘录(一)
<br />1.给定一个包含大量不同的30位二进制字x1,....,xN的文件,找出其中所有补码对{xi,xj}的好方法是什么?(互补的充要条件为和为(11...111)2 )<br /> 解法:记c=231-1,首先对文件进行排序,使得x1<x2<.....<xN. 记i=1,j=N;重复下列步骤直到j<=i:<br /> if xi+xj = c,print{xi,xj },i += 1;j -= 1;<br /> if xi+xj < c,i + = 1;<br /> if xi+原创 2010-06-27 18:17:00 · 1055 阅读 · 0 评论 -
《Introduction to Information Retrieval》读书笔记(一)
《Introduction to Information Retrieval》读书笔记原创 2010-08-26 21:31:00 · 2825 阅读 · 0 评论 -
MySQL学习41条
MySQL学习100条1. databasea. SHOW DATABASES;b. CREATE DATABASE test;c. SHOW CREATE DATABASE;d. SHOW STATUS;2. columna. SELECT colname1, colname2 FROM tablename;b. SELECT DISTINCT vend_id FROM product原创 2016-05-17 07:57:25 · 695 阅读 · 0 评论