08 2014 档案
摘要:1.C++11中已经有了final关键字:它的作用是指定类的虚函数不能被该类的继承类覆盖(override),或者是指定一个类成为一个不能被继承的类(final class)2.派生类用调用基类的构造函数来初始化基类部分,若将基类构造函数声明为private,则实例化派生类成员时链接出错,但是这样基...
阅读全文
摘要:转自:http://yooooo.us/2013/python-encoding-decoding?variant=zh-cn
阅读全文
摘要:转自:http://zhuoqiang.me/python-urllib2-usage.htmlhttp://www.cnblogs.com/txw1958/archive/2012/03/12/2392067.html
阅读全文
摘要:转自:http://blog.csdn.net/v_july_v/article/details/62794981、海量日志数据,提取出某日访问百度次数最多的那个IP算法思想:分而治之+Hash1.IP地址最多有2^32=4G种取值情况,所以不能完全加载到内存中处理;2.可以考虑采用“分而治之”的思...
阅读全文
摘要:class Base {public: virtual void f(int x);};class Derived: public Base {public: virtual void f(double *pd);};Derived *pd = new Derived;pd->f(10); ...
阅读全文
摘要:Directory tempDir; // 临时文件目录 现在,初始化顺序的问题变得很明显了:除非theFileSystem在tempDir之前被初始化,否则,tempDir的构造函数将会去使用还没被初始化的theFileSystem。但theFileSystem和tempDir是由不同的人在不同的
阅读全文
摘要:如果你没有声明下列函数,体贴的编译器会声明它自己的版本。这些函数是:一个拷贝构造函数,一个赋值运算符,一个析构函数,一对取址运算符。另外,如果你没有声明任何构造函数,它也将为你声明一个缺省构造函数。所有这些函数都是公有的。换句话说,如果你这么写:class Empty{};和你这么写是一样的:cla...
阅读全文
摘要:第一个规则是,和公有继承相反,如果两个类之间的继承关系为私有,编译器一般不会将派生类对象(如Student)转换成基类对象(如Person)第二个规则是,从私有基类继承而来的成员都成为了派生类的私有成员,即使它们在基类中是保护或公有成员,即派生类对象不能访问基类的所有成员class person{}...
阅读全文
摘要:· 当对象的类型不影响类中函数的行为时,就要使用模板来生成这样一组类。· 当对象的类型影响类中函数的行为时,就要使用继承来得到这样一组类。下面的代码通过定义一个链表来实现Stack类,假设堆栈的对象类型为T:templateclass stack{public: stack(); ~st...
阅读全文
摘要:Python为我们提供了很多便捷的方式去遍历一个字符串中的字符。比如,将一个字符串转换为一个字符数组(列表):theList=list(theString)同时,我们可以方便的通过for语句进行遍历:for c in theString: do_something_with(c)map函数用法:第一...
阅读全文
摘要:range的用法:>>> range(1,5) #代表从1到5(不包含5)[1, 2, 3, 4]>>> range(1,5,2) #代表从1到5,间隔2(不包含5)[1, 3]>>> range(5) #代表从0到5(不包含5)[0, 1, 2, 3, 4]列表操作:array = [1, 2, ...
阅读全文
摘要:基类指针不能调用派生类的独有的成员,即使基类指针指向派生类对象,因为编译器是根据指针的静态类型来确定调用对象在内存中占据的空间的。此时可以使用static_cast来转换,但不要这么做,因为向下转换难看、容易导致错误,而且使得代码难于理解、升级和维护,static_cast不会进行类型检查,即使指针...
阅读全文
摘要:虚函数是动态绑定而缺省参数值是静态绑定的,当基类和派生类对同一个虚函数设置缺省参数值时,只有基类的缺省参数值起作用。对象的静态类型是指你声明的存在于程序代码文本中的类型,对象的动态类型是由它当前所指的对象的类型决定的。即,对象的动态类型表示它将执行何种行为。虚函数是动态绑定的,意思是说,虚函数通过哪...
阅读全文
摘要:class B {public: void mf(); ...};class D: public B { ... };甚至对B,D或mf一无所知,也可以定义一个类型D的对象x,D x; // x是类型D的一个对象那么,如果发现这么做:B *pB = &x; // 得到x的指针pB->mf(); ...
阅读全文
摘要:作为类的设计者,有时希望派生类只继承成员函数的接口(声明);有时希望派生类同时继承函数的接口和实现,但允许派生类改写实现;有时则希望同时继承接口和实现,并且不允许派生类改写任何东西。class Shape {public: virtual void draw() const = 0; virtu...
阅读全文
摘要:class Person {public: Person(const string& name, const Date& birthday, const Address& addr, const Country& country); virtual ~Person(); ......
阅读全文
摘要:调用函数实际上将程序执行顺序转移到函数所存放在内存中某个地址,将函数的程序内容执行完后,再返回到转去执行该函数前的地方。这种转移操作要求在转去前要保护现场并记忆执行的地址,转回后先要恢复现场,并按原来保存地址继续执行。当程序运行到某个节点时,如果发现有函数调用语句(函数要事先声明或者事先定义),程序...
阅读全文
摘要:// 此函数太早定义了变量"encrypted"string encryptPassword(const string& password){ string encrypted;//默认构造函数初始化 if (password.length() < MINIMUM_PASSWORD_LENGTH...
阅读全文
摘要:先看第一种情况:返回一个局部对象的引用。它的问题在于,局部对象 ----- 顾名思义 ---- 仅仅是局部的。也就是说,局部对象是在被定义时创建,在离开生命空间时被销毁的。所谓生命空间,是指它们所在的函数体。当函数返回时,程序的控制离开了这个空间,所以函数内部所有的局部对象被自动销毁。因此,如果返回...
阅读全文
摘要:转自:网易博客服务器的并发模型设计是网络编程中很关键的一个部分,服务器的并发量取决于两个因素,一个是提供服务的进程数量,另外一个是每个进程可同时处理的并发连接数量。相应的,服务器的并发模型也由两个部分构成:进程模型和连接处理机制。进程模型主要有以下3种模型:(1)单进程模式:这种模式的服务器称为迭代...
阅读全文
摘要:http://cjhust.blog.163.com/blog/static/175827157201211561035130/
阅读全文
摘要:http://blog.csdn.net/solstice/article/details/6579232
阅读全文
摘要:http://blog.csdn.net/solstice/article/details/8547547
阅读全文
摘要:假设b是一个const string对象:class string {public: string(const char *value); // 具体实现参见条款11 ~string(); // 构造函数的注解参见条款m5 opera...
阅读全文
摘要:http://en.wikipedia.org/wiki/K-d_treehttp://en.wikipedia.org/wiki/Octree
阅读全文
摘要:http://blog.csdn.net/ouxijv/article/details/7203027
阅读全文
摘要:内核源码: https://www.nowcoder.com/discuss/26226?type=0&order=0&pos=21&page=1 epoll流程:<!--?xml:namespace prefix = "o" ns = "urn:schemas-microsoft-com:offi
阅读全文
摘要:假设想写一个类模板Array,它所生成的类除了可以进行上下限检查外,其它行为和C++标准数组一样。设计中面临的一个问题是怎么禁止掉Array对象之间的赋值操作,因为对标准C++数组来说赋值是不合法的:double values1[10];double values2[10];values1 = va...
阅读全文
摘要:class B; // 对类B提前声明 // class A {public: A(const B&); // 可以从B构造而来的类A};class B {public: operator A() const; // 可以从A转换而来的类B};void f(c...
阅读全文
摘要:class rational {public: rational(int numerator = 0, int denominator = 1); ...private: int n, d; // 分子和分母friend const rational ...
阅读全文
摘要:c语言中,什么都是通过传值来实现的,c++继承了这一传统并将它作为默认方式。除非明确指定,函数的形参总是通过“实参的拷贝”(拷贝构造函数)来初始化的,函数的调用者得到的也是函数返回值的拷贝。为避免这种潜在的昂贵的开销,就不要通过值来传递对象,而要通过引用。通过引用来传递参数还有另外一个优点:它避免了...
阅读全文
摘要:对指针来说,可以指定指针本身为const,也可以指定指针所指的数据为const,或二者同时指定为const,还有,两者都不指定为const: 声明迭代器为const表示这个迭代器不得指向不同的东西,但它所指的东西的值是可以改变的,如果希望迭代器所指的东西不可被改动,可以使用const_iterato
阅读全文
摘要:http://www.cnblogs.com/figure9/p/3708351.html
阅读全文
摘要:http://blog.csdn.net/tigerjibo/article/details/6775534 一.Linux下TCP编程框架 TCP网络编程的流程包含服务器和客户端两种模式。服务器模式创建一个服务程序,等待客户端用户的连接,接收到用户的连接请求后,根据用户的请求进行处理;客户端模式则
阅读全文
摘要:成员函数和非成员函数最大的区别在于成员函数可以是虚拟的而非成员函数不行。所以,如果有个函数必须进行动态绑定(见条款38),就要采用虚拟函数,而虚拟函数必定是某个类的成员函数。如果函数不必是虚拟的,情况就稍微复杂一点。看下面表示有理数的一个类:class rational {public: rati...
阅读全文
摘要:因为访问寄存器要比访问内存单元快的多,所以编译器一般都会作减少存取内存的优化,但有可能会读脏数据。当要求使用volatile声明变量值的时候,系统总是重新从它所在的内存读取数据,即使它前面的指令刚刚从该处读取过数据。精确地说就是,遇到这个关键字声明的变量,编译器对访问该变量的代码就不再进行优化,从而
阅读全文
摘要:名称:cat 使用权限:所有使用者 使用方式:cat [-AbeEnstTuv] [--help] [--version] fileName 说明:把档案串连接后传到基本输出(萤幕或加 > fileName 到另一个档案) 参数: -n 或 --number 由 1 开始对所有输出的行数编号 -...
阅读全文
摘要:指令名称 : chmod 使用权限 : 所有使用者 使用方式 : chmod [-cfvR] [--help] [--version] mode file... 说明 : Linux/Unix 的档案调用权限分为三级 : 档案拥有者、群组、其他。利用 chmod 可以藉以控制档案如何被他人所调用。 ...
阅读全文
摘要:http://www.cnblogs.com/BeginMan/p/3179302.htmlhttp://www.cnblogs.com/huxi/category/251137.htmlhttp://www.cnblogs.com/hongten/p/hongten_python_first_mo...
阅读全文
摘要:转自:江南烟雨IP哈希初始化IP哈希的初始化函数ngx_http_upstream_init_ip_hash(ngx_http_upstream_ip_hash_module.c):static ngx_int_tngx_http_upstream_init_ip_hash(ngx_conf_t *...
阅读全文
摘要:转自:江南烟雨本文介绍的是客户端请求在多个后端服务器之间的均衡,注意与客户端请求在多个nginx进程之间的均衡相区别。如果Nginx是以反向代理的形式配置运行,那么对请求的实际处理需要转发到后端服务器运行,如果后端服务器有多台,如何选择一台合适的后端服务器来处理当前请求,就是本文要说的负载均衡。这两...
阅读全文
摘要:在赋值运算符中要特别注意可能出现别名的情况,其理由基于两点。其中之一是效率。如果可以在赋值运算符函数体的首部检测到是给自己赋值,就可以立即返回,从而可以节省大量的工作,否则必须去实现整个赋值操作。另一个更重要的原因是保证正确性。一个赋值运算符必须首先释放掉一个对象的资源(去掉旧值),然后根据新值分配...
阅读全文
摘要:当涉及到继承时,派生类的赋值运算符也必须处理它的基类成员的赋值!否则,当派生类对象向另一个派生类对象赋值时,只有派生类部分赋值了。看看下面:class base {public: base(int initialvalue = 0): x(initialvalue) {}private: int...
阅读全文
摘要:c++程序员经常犯的一个错误是让operator=返回void,这好象没什么不合理的,但它妨碍了连续(链式)赋值操作,所以不要这样做。一般情况下几乎总要遵循operator=输入和返回的都是类对象的引用的原则,然而有时候需要重载operator=使它能够接受不同类型的参数。例如,标准string类型...
阅读全文
摘要:templateclass array {public: array(int lowbound, int highbound); ...private: vector data; // 数组数据存储在vector对象中 ...
阅读全文
摘要:转自:http://blog.csdn.net/m13666368773/article/details/8060481正向代理的概念正向代理,也就是传说中的代理,他的工作原理就像一个跳板,简单的说,我是一个用户,我访问不了某网站,但是我能访问一个代理服务器这个代理服务器呢,他能访问那个我不能访问的...
阅读全文
摘要:参考:http://zyan.cc/nginx_php_v6/nginx相对于apache的优点:1.轻量级,同样的web 服务,比apache服务器占用更少的内存及资源2.抗并发,nginx在处理请求是异步非阻塞的(epoll),而apache 则是阻塞型的(select),在高并发下nginx ...
阅读全文
摘要:看这样一个模板,它生成的类使得一个名字和一个t类型的对象的指针关联起来。 在写namedptr构造函数时,必须将参数值传给相应的数据成员。有两种方法来实现。第一种方法是使用成员初始化列表: 第二种方法是在构造函数体内赋值: 从纯实际应用的角度来看,有些情况下必须用初始化。特别是const和引用数据成
阅读全文
摘要:看下面一个表示string对象的类:// 一个很简单的string类class string {public: string(const char *value); ~string(); ... // 没有拷贝构造函数和operator=pr...
阅读全文
摘要:http://www.cnblogs.com/chio/archive/2007/09/17/895263.html c++中的explicit关键字用来修饰类的构造函数,表明该构造函数是显式(调用)的,既然有"显式"那么必然就有"隐式",那么什么是显示而什么又是隐式的呢? 如果c++类的构造函数有
阅读全文
摘要:http://www.cnblogs.com/chio/archive/2007/10/23/934335.htmlhttp://blog.csdn.net/szchtx/article/details/12000867在C++中,类的对象建立分为两种,一种是静态建立,如A a;另一种是动态建立,如...
阅读全文
摘要:http://www.cnblogs.com/chio/archive/2007/06/11/778934.htmlsizeof不是函数,更像一个特殊的宏,它是在编译阶段求值得。sizeof作用范围内即()里面的内容是被替换成类型int a = 0;cout << sizeof(1 == 2) <<...
阅读全文
摘要:C++类型转换分为:隐式类型转换和显式类型转换 一、隐式类型转换 1) 算术转换(Arithmetic conversion) : 在混合类型的算术表达式中, 最宽的数据类型成为目标转换类型。 2)一种类型表达式赋值给另一种类型的对象:目标类型是被赋值对象的类型 例外:void指针赋值给其他指定类型
阅读全文
摘要:为什么有必要写自己的operator new和operator delete?答案通常是:为了效率。缺省的operator new和operator delete具有非常好的通用性,它的这种灵活性也使得在某些特定的场合下,可以进一步改善它的性能。尤其在那些需要动态分配大量的但很小的对象的应用程序里,...
阅读全文
摘要:http://www.newsmth.net/nForum/#!article/Python/95860
阅读全文
摘要:因为内部范围声明的名称会隐藏掉外部范围的相同的名称,所以对于分别在类的内部和全局声明的两个相同名字的函数f来说,类的成员函数会隐藏掉全局函数class x {public: void f(); // operator new的参数指定一个 // new-hander(new的出错处理)函数 ...
阅读全文
摘要:自己重写operator new时(条款10解释了为什么有时要重写它),很重要的一点是函数提供的行为要和系统缺省的operator new一致。实际做起来也就是:要有正确的返回值;可用内存不够时要调用出错处理函数(见条款7);处理好0字节内存请求的情况。此外,还要避免不小心隐藏了标准形式的new,不...
阅读全文
摘要:http://www.cnblogs.com/coser/archive/2012/01/09/2317076.html
阅读全文
摘要:string *stringarray = new string[100];...delete stringarray;上述程序的运行情况将是不可预测的。至少,stringarray指向的100个string对象中的99个不会被正确地摧毁,因为他们的析构函数永远不会被调用。用new的时候会发生两件事...
阅读全文
摘要:http://www.cnblogs.com/hongten/p/hongten_python_glob.htmlhttp://wenku.baidu.com/link?url=AgUq9_yQVjQ_uivEgjWEg9HNQ9bqXqY_efk_vtdPerzcTEkU-mgXFPZWckX8f...
阅读全文
摘要:malloc和free(及其变体)会产生问题的原因在于它们太简单:他们不知道构造函数和析构函数。假设用两种方法给一个包含10个string对象的数组分配空间,一个用malloc,另一个用new:string *stringarray1 =static_cast(malloc(10 * sizeof(...
阅读全文
摘要:编译器会永远也看不到ASPECT_RATIO这个符号名,因为在源码进入编译器之前,它会被预处理程序去掉,于是ASPECT_RATIO不会加入到符号列表中。如果涉及到这个常量的代码在编译时报错,就会很令人费解,因为报错信息指的是1.653,而不是ASPECT_RATIO。 解决这个问题的方案很简单:不
阅读全文
摘要:Nginx启动过程流程图:ngx_cycle_t结构体:Nginx的启动初始化在src/core/nginx.c的main函数中完成,当然main函数是整个Nginx的入口,除了完成启动初始化任务以外,也必定是所有功能模块的入口之处。Nginx的初始化工作主要围绕一个类型为ngx_cycle_t类型...
阅读全文
摘要:一、Nginx整体架构正常执行中的nginx会有多个进程,最基本的有master process(监控进程,也叫做主进程)和woker process(工作进程),还可能有cache相关进程。二、核心进程模型启动nginx的主进程将充当监控进程,而由主进程fork()出来的子进程则充当工作进程。ng...
阅读全文
摘要:http://blog.163.com/sh_wenfen/blog/static/99708242007231103936938/
阅读全文
摘要:http://blog.csdn.net/hguisu/article/category/1230933
阅读全文
摘要:1. Bloom-Filter算法简介Bloom Filter(BF)是一种空间效率很高的随机数据结构,它利用位数组很简洁地表示一个集合,并能判断一个元素是否属于这个集合。它是一个判断元素是否存在于集合的快速的概率算法。Bloom Filter有可能会出现错误判断,但不会漏掉判断。也就是Bloom ...
阅读全文
摘要:http://www.cnblogs.com/heyonggang/archive/2012/12/11/2812304.html
阅读全文
摘要:http://www.cnblogs.com/biyeymyhjob/archive/2012/07/21/2602015.html http://blog.chinaunix.net/uid-20543672-id-3252604.html http://bbs.chinaunix.net/thr
阅读全文
摘要:转自:http://blog.sina.com.cn/s/blog_6be89284010183xm.html
阅读全文
摘要:转自:http://blog.csdn.net/chenjinyu_tang/article/details/8136841当函数的参数不确定时,可以使用*args 和**kwargs,*args 没有key值,**kwargs有key值。http://www.2cto.com/kf/201202/...
阅读全文
摘要:转自:http://www.cnblogs.com/lovemo1314/archive/2011/05/03/2035005.html
阅读全文
摘要:尾递归和一般的递归不同在对内存的占用,普通递归创建stack累积而后计算收缩,尾递归只会占用恒量的内存(和迭代一样)。SICP中描述了一个内存占用曲线,用以上答案中的Python代码为例(普通递归):def recsum(x): if x == 1: return x else: r...
阅读全文