FAQs in section [35]: [35.1] 模板的设计思想是什么? [35.2] 什么是 “类模板”的语法/语义? [35.3] 什么是“函数模板”的语法/语义? [35.4] 如何确定显式调用函数模板的哪个版本? [35.5] 什么是“参数化类型”? [35.6] 什么是“泛型”? [35.7] 当模板类型T是 int 或std::string时,我的模板函数需要进行特殊处理。对特
9.1 模拟 现实中有很多问题,如果不利用计算机的话,就很难解决甚至不可能解决。例如天气预 报,古人只能通过肉眼看天来做预测,现代人则通过为大气过程建立数学模型并进行数值计 算来做预测,最新的理论更将确定性模型发展到不确定性模型,从而能对大气这个混沌系统 的行为做出更准确预报。这一切都有赖于计算机模拟(simulation)技术的应用,即利用计 算机为现实问题甚至假想问题建立模型,通过改变一些变量
Ruby的模块非常类似类,除了: 模块不可以有实体 模块不可以有子类 模块由module...end定义. 实际上...模块的'模块类'是'类的类'这个类的父类.搞懂了吗?不懂?让我们继续看下去吧. 模块有两种用法.其一是将相近的方法和实体放在一个相对集中的域里.Ruby标准包里的Math模块就扮演着这一角色: ruby> Math.sqrt(2) 1.41421 ruby> Math::P
模块是一种集中方法,类和常量的方法,主要带来两个好处: 模块提供了一个命名空间(namespace )防止命名冲突。 通过模块能实现混合插入(mixin)功能。 命名空间 当你写的Ruby程序越来越大,越来越多之后,都会发现有很多代码都可以重用,通常可以将相关例程组成一个库,分布到不同的文件以便被其它Ruby程序共享。 通常,这些代码都以类的形式组织在一起,所以你可能将一个类或者和其相关的几个类放
不少网络笔试不像 LeetCode 帮你完成 I/O,需要手动完成 如果没有 ACM 经验,很可能会在这上面浪费不少时间 这里总结了几种常见的 IO 模板,分别提供了 C/C++ 和 Python(TODO) 代码 输入不说明有多少个 Input,以 EOF 为结束标志 C int a, b; // scanf 返回值为变量的个数,如果没有返回 -1,EOF 是一个预定义的常量 -1 while
Models 是从 Schema 编译来的构造函数。 它们的实例就代表着可以从数据库保存和读取的 documents。 从数据库创建和读取 document 的所有操作都是通过 model 进行的。 编译你的第一个 model var schema = new mongoose.Schema({ name: 'string', size: 'string' }); var Tank = mongo
如果你退出 Python 解释器并重新进入,你做的任何定义(变量和方法)都会丢失。 因此,如果你想要编写一些更大的程序,为准备解释器输入使用一个文本编辑器会更好,并以那个文件替代作为输入执行。 这就是传说中的 脚本 。 随着你的程序变得越来越长,你可能想要将它分割成几个更易于维护的文件。 你也可能想在不同的程序中使用顺手的函数,而不是把代码在它们之间中拷来拷去。 为了满足这些需要,Python 提
mininet.util 模块 一些辅助的方法。包括如下重要的方法。 errFail 利用 errRun(利用 popen 来在 shell 中执行命令)来执行一个命令,并且如果执行不成功则抛出异常。
mininet.term 模块 支持 term 相关的命令,例如在主机上创建一个 xterm。实现依赖于 socat 和 xterm。
mininet.moduledeps 模块 定义几个对 Linux 系统中内核模块进行操作的函数,包括列出模块 lsmod,移除模块 rmmod,探测模块 modprobe 和处理模块的依赖等。
mininet.log 模块 利用 logging 包,主要提供进行 log 相关的功能,包括三个类:MininetLogger、Singleton、StreamHandlerNoNewline。 mininet.log.MininetLogger 自定义的 logger 类。 提供输出 log、配置 LogLevel 功能。 mininet.log.Singleton 软件设计模式,限定所创建的
mininet.clean 模块 提供对执行 Mininet 后的清理工作,主要包括 cleanup() 函数,该函数实际上调用了 sh() 函数。 cleanup() 函数主要包括清除僵尸进程,临时文件,X11 tunnel,额外的内核态 datapath,ovs datapath,ip link 等。 实现过程主要是通过调用 subprocess 模块(主要用于执行外部命令和程序)中的 Pop
mininet.cli 模块 主要包括 CLI 类,该类继承自 Python 库的 Cmd 类。 提供对 CLI 的支持,创建 Mininet 的 bash,接受通过 bash 传输的 Mininet 命令,形成可以进行交互的 Mininet 命令行环境。 主要方法包括初始化之后提供一个界面,通过 Python 库的 Cmd 类的 cmdloop() 方法不断执行输入的命令。这些命令可以是指定对某
维护网络拓扑相关的信息。 除了一些固定结构的拓扑类之外,还提供了 mininet.topolib 模块,提供用户自己创建复杂拓扑相关的库,目前仅包括一个 mininet.topolib.TreeTopo 拓扑,是个树拓扑类,给定深度和广度可以自己生成相应的标准树拓扑。
主要包括 Mininet 和 MininetWithControlNet 两个类。