发布订阅模式的实现:(基于观察者模式实现)
发布:(观察者)发布者向被观察类中注册感兴趣的事件,以map为结构(key值存储感兴趣的事件,value为该事件的感兴趣对象,链表存储)
订阅:(被观察者上被推送了事件后,轮询遍历该事件map key 对应的对象链表)进行信息通知伴随回调函数进行事件处理
智能指针的unique_ptr,实现机制、=权值转移
unique_ptr不能实现拷贝构造、复制拷贝构造,但可以实现移动赋值的权值传递转移:具体先释放当前智能指针独占资源的内存,再将另一个资源的指针以传递对象的右值转移,最后将参数对象的资源制空
右值引用的作用、右值move()函数
右值:字面常量、临时对象、函数返回值、待消亡成员
move()函数:将一个左值强制转换为右值引用使得对象可以移动赋值(告诉编译器安全对对象践行移动操作资源所有权转移)
大型对象或者资源稠密型对象时可以显著提升性能,避免数据复制(复制构造、赋值运算)
操作系统的功能
处理器、存储器、运算器、控制器
处理器:合理为进程分配处理器的使用时间
存储器:内存、磁盘、移动U盘、缓冲区、随机存储器,管理内存、外存
文件管理、作业管理(程序提交作业的执行顺序)
虚拟地址:(虚拟地址映射到物理地址)是进程中抽象的内存地址空间,每个进程拥有连续的虚拟地址空间,相互隔离
虚拟地址映射关系:
进程访问时通过页号和页内偏移量,再页表中查找到物理地址(物理页号、页内偏移量)
中断:计算机运行过程中,外部设备向CPU发出的请求信号,使得CPU暂停当前执行任务,处理中断请求,完毕后再继续执行中断了的任务
适配器模式:将一个接口转换成另一个接口,使得原本不兼容的类可以实现一起工作当现有类的接口不符合系统要求时,在新系统中使用适配器模式转换
装饰器模式:不改变原来对象的结构和功能前提下,动态的给对象添加一些额外的功能
析构函数设置为虚函数,在析构对象的时候,通过基类指针删除派生类对象,在调用基类的析构函数,避免资源泄漏未释放
深度优先:
解决迷宫逃离问题,沿一条执行路径尽可能探索、否则回溯尝试其他结点
拓扑排序:有向无环图,任务调度确定执行顺序
生成树问题:最小生成树
广度优先:
最短路径:最少步数
网络爬虫爬取页面
洪水填充算法:图像处理中填充封闭区域的颜色,一层层向外扩充
饱汉单例模式实现双重判空验证加锁实现多线程下的线程安全创建