SJCHEN

时光,不会辜负每一个平静努力的人

0%

定义

多态(polymorphism)是面向对象编程语言的一大特点,而虚函数是实现多态的机制。其核心理念是通过基类访问派生类定义的函数。

多态性使得程序调用的函数是在运行时动态确定的,而不是在编译时静态确定。

  • 虚函数。在类成员方法的声明语句前加上virtual关键字,例如:virtual void func();

  • 纯虚函数。在虚函数后加上"=0",如virtual void func() = 0;

对于虚函数,子类可以(也可以不)重新定义基类的虚函数,该行为称为复写(override)

阅读全文 »

面向对象的核心思想是数据抽象,继承和动态绑定。

阅读全文 »

我们先理解几个问题:

1,回溯算法是什么?解决回溯算法相关的问题有什么技巧?如何学习回溯算法?回溯算法代码有什么规律?

回溯算法其实就是DFS算法,本质上就是一种暴力穷举算法。

解决一个回溯问题,实际就是一个决策树的遍历过程。我们只需要考虑3个问题:

(1)路径: 也就是已经做出的选择。

(2)选择列表: 也就是你当前可以做的选择。

(3)结束条件: 也就是达到决策树底层,无法再做选择的条件。

阅读全文 »

[[toc]]

进程与线程

进程与线程的比较

进程 线程
映像组成 由程序段,相关数据段和PCB组成 共享其隶属进程的进程映像,仅拥有线程ID,寄存器集合和堆栈等
并发性 在没有引入线程的操作系统中,进程是独立运行的基本单位 线程是独立运行的基本单位,一个进程可以拥有一个或多个线程
资源分配 进程是资源分配和拥有的基本单位 线程自己不拥有系统资源,但它可以访问所属进程所拥有的全部资源
调度 在没有引入线程的操作系统中,进程是独立调度和分配的基本单位 在引入线程后的操作系统,线程是独立调度和分配的基本单位
通信 PV操作;共享存储;消息传递;管道通信 同一进程的各线程直接读写进程数据段,不同进程的线程之间通信属于进程剑通信
目的 更好的使多道程序并发执行,提高资源利用率和系统吞吐量 减小程序在并发执行时所付出的时空开销,提高操作系统的并发性能
地址空间 进程的地址空间之间相互独立 同一进程的各线程间共享进程的地址空间

进程映像是静态的,进程是动态的

阅读全文 »