万象云档 本次搜索耗时 1.380 秒,为您找到 298 个相关结果.
  • 12.3 克隆的控制

    12.3 克隆的控制 12.3.1 副本构造器 12.3 克隆的控制 为消除克隆能力,大家也许认为只需将clone() 方法简单地设为private (私有)即可,但这样是行不通的,因为不能采用一个基类方法,并使其在派生类中更“私有”。所以事情并没有这么简单。此外,我们有必要控制一个对象是否能够克隆。对于我们设计的一个类,实际有许多种方案都是可以采取...
  • 4.3.中断机制

    4.3 中断机制 概述 中断是指出现需要时,CPU暂停执行当前程序,转而执行新程序的过程。即在程序运行过程中,系统出现了一个必须由CPU立即处理的事务。此时,CPU暂时中止当前程序的执行转而处理这个事务,这个过程就叫做中断。 众多周知,CPU的处理速度比外设的运行速度快很多,外设可以在没有CPU介入的情况下完成一定的工作,但某些情况下需...
  • 2.9 完美洗牌

    2.9 完美洗牌 题目详情 分析与解法 解法一、蛮力变换 1.1、步步前移 1.2、中间交换 解法二、完美洗牌算法 2.1、位置置换pefect_shuffle1算法 2.2、完美洗牌算法perfect_shuffle2 2.2.1、走圈算法cycle_leader 2.2.2、神级结论:若2*n=(3^k - 1),则可确定圈的个数及各自头部的...
  • 13.4 捕获事件

    13.4 捕获事件 13.4 捕获事件 大家可注意到假如编译和运行上面的程序片,按下按钮后不会发生任何事情。必须进入程序片内部,编写用于决定要发生什么事情的代码。对于由事件驱动的程序设计,它的基本目标就是用代码捕获发生的事件,并由代码对那些事件作出响应。事实上,GUI的大部分内容都是围绕这种事件驱动的程序设计展开的。 经过本书前面的学习,大家应该有了...
  • 6.3 simhash算法

    6.3 simhash算法 方法介绍 背景 出世 流程 应用" level="3"> 应用 问题实例 6.3 simhash算法 方法介绍 背景 如果某一天,面试官问你如何设计一个比较两篇文章相似度的算法?可能你会回答几个比较传统点的思路: 一种方案是先将两篇文章分别进行分词,得到一系列特征向量,然后计算特征向量之间的距离(可以计算...
  • 5.3 接口与实现

    5.3 接口与实现 5.3 接口与实现 我们通常认为访问控制是“隐藏实现细节”的一种方式。将数据和方法封装到类内后,可生成一种数据类型,它具有自己的特征与行为。但由于两方面重要的原因,访问为那个数据类型加上了自己的边界。第一个原因是规定客户程序员哪些能够使用,哪些不能。我们可在结构里构建自己的内部机制,不用担心客户程序员将其当作接口的一部分,从而自由地...
  • 16.6 多重分发

    16.6 多重分发 16.6.1 实现双重分发 16.6 多重分发 上述设计模式肯定是令人满意的。系统内新类型的加入涉及添加或修改不同的类,但没有必要在系统内对代码作大范围的改动。除此以外,RTTI并不象它在RecycleA.java 里那样被不当地使用。然而,我们仍然有可能更深入一步,以最“纯”的角度来看待RTTI, 考虑如何在垃圾分类系统中将它完...
  • 3.3 最近公共祖先LCA

    3.3 最近公共祖先LCA 问题描述 分析与解法 解法一:暴力对待 1.1、是二叉查找树 1.2、不是二叉查找树 解法二:Tarjan算法 2.1、什么是Tarjan算法 2.2、Tarjan算法如何而来 2.3、Tarjan算法流程 解法三:转换为RMQ问题" level="3"> 解法三:转换为RMQ问题 3.1、什么是RMQ问题" ...
  • 6.3 simhash算法

    6.3 simhash算法 方法介绍 背景 出世 流程 应用 问题实例 6.3 simhash算法 方法介绍 背景 如果某一天,面试官问你如何设计一个比较两篇文章相似度的算法?可能你会回答几个比较传统点的思路: 一种方案是先将两篇文章分别进行分词,得到一系列特征向量,然后计算特征向量之间的距离(可以计算它们之间的欧氏距离、海明距离或...
  • 3.3 最近公共祖先LCA

    3.3 最近公共祖先LCA 问题描述 分析与解法 解法一:暴力对待 1.1、是二叉查找树 1.2、不是二叉查找树 解法二:Tarjan算法 2.1、什么是Tarjan算法 2.2、Tarjan算法如何而来 2.3、Tarjan算法流程 解法三:转换为RMQ问题 3.1、什么是RMQ问题 3.2、如何解决RMQ问题 3.2.1、Trivial...