摘要: 求能够完全包含平面上n个给定点的凸多边形。这个问题一般使用快包算法。快包思想:1)将n个点按照x左边进行排序,找到P1和Pn,直线P1->Pn将平面上的点分为两部分S1和S2,成为上包和下包,递归的求解这两部分。2)如何求S1和S2,这两部分算法一样,以S1为例。如果S1为空,上包就是一P1和Pn为... 阅读全文
posted @ 2014-10-14 10:44 践行者123 阅读(306) 评论(0) 推荐(0)
摘要: 当一个点集中只有两个点时,它们的距离就是最近距离;当一个点集中有三个点时,它们的距离也可以直接求出;当一个点集中的点数量大于3时,则将数组拆分成两半,分别计算左右子集的最近距离的平方d(将数量>3的数组一直拆分,最后到只有2个或3个点的点集时即能求解),收集距离中线两侧小于d的点,在这些点中寻找垂直... 阅读全文
posted @ 2014-10-14 10:05 践行者123 阅读(1365) 评论(0) 推荐(0)
摘要: class X{};class Y:public virtual X{};class Z:public virtual X{};class A:public Y,public Z{};使用sizeof在vs210上计算上面类的大小,计算结果如下 可以看到empty virtual base cla... 阅读全文
posted @ 2014-10-11 16:11 践行者123 阅读(299) 评论(0) 推荐(0)
摘要: 在《C++ Annotated Reference Manual(ARM)[ELLIS90]》中的Section 12.1告诉我们:"Default constructors...在需要的时候被编译器产生出来"。其实默认构造函数也是分为两类的:有用的(nontrivial)、无用的(trivial)... 阅读全文
posted @ 2014-10-07 13:56 践行者123 阅读(266) 评论(0) 推荐(0)
摘要: 2、尽量以const,enum,inline替换#define(1) #define在预处理阶段被处理而const在编译阶段处理,如果在编译阶段宏定义的记号名称被移走,那么编译将出错,且不便于调式。(2) 无法利用#define创建一个class专属常量,因为#define并不重视作用域。class... 阅读全文
posted @ 2014-10-06 11:04 践行者123 阅读(145) 评论(0) 推荐(0)
摘要: 1、了解new-handler的行为当operator new 抛出异常以反映一个未满足的内存需求之前,他会先调用一个客户指定的错误处理函数,一个所谓的new-handler。为了指定这个“用以处理内存不足”的函数,客户必须调用set_new_handler,那个声明于的一个标准程序库函数:name... 阅读全文
posted @ 2014-10-01 17:18 践行者123 阅读(202) 评论(0) 推荐(0)