<section>: The Generic Section element <section> is a generic sectioning element, and should only be used if there isn't a more specific element to represent it. Each <section> should be identified, typically by including a heading (<h1>-<h6> element...
动态规划的四个步骤: 刻画一个最优解的结构特征 递归地定义最优解的值 计算最优解的值,通常采用自底向上的方法 利用计算出的信息构造一个最优解
在 C++, C#, Java 等面向对象语言中,对象由两部分组成:属性和方法。通常属性是私有成员或保护成员,不能从对象外部直接访问;方法是公有成员,供外界间接访问对象的内部属性,以此来实现数据隔离。利用伪代码来简单演示如下: 构造一个只有一个私有成员而没有任何共有方法的对象 obj var obj = { private int attr1 = 1024, } 不能直接访问和修改attr1 print(obj.attr1) // Error: can't access attr1 of ...
策略模式 定义了算法族,分别封装起来,让他们之间可以相互替换,此模式让算法的变化独立于使用算法的客户。 观察者模式 即发布/订阅。 装饰者模式 扩展对象的能力。 工厂模式 由子类决定产生的对象类型。 单件模式 只能有一个对象的类。 命令模式 把请求封装成对象,以便使用不同的请求、队列或者日志来参数化其他对象。支持撤销。 适配器与外观模式 适配器: 更改原有接口使其可用。 外观:简化已有的一堆接口,使调用简单化。 模板方法模式 使子类有能力更改算法的局部实现。 迭代器与组合模式 提...
Rust's ownership mechanism limit there is only one owner of a variable. When the variable goes out of scope, Rust automatically recycle the space of that variable. What smart pointers do is that they allow multiple owner of a variable. And when the v...
同步代码,包括同步函数、表达式,以调用栈的方式执行;所有回调函数在任务会依次进入任务队列(Task Queue),依次等待执行,也就是 Event Loop。任务队列有多个, 可以分为两大类:Macro Tasks 和 Micro Tasks。下面以伪代码演示浏览器和 Node 中的 Event Loop 运行模型。 浏览器 // Event Loop可以看成程序的入口函数Main while (true) { // 任务队列的执行顺序是任意的,但同一来源的任务必须在同一队列中,同一队列中的...