设计模式是一套被反复使用的 经过分类的 代码设计经验的总结 为了重用代码 使代码更易被他人理解

阅读全文 »

Operating System

进程管理

进程Process

进程是资源分配的基本单位
进程控制块(Process Control Block)PCB描述进程的基本信息和运行状态 进程是抢占式抢夺CPU

阅读全文 »

C++ STL

STL是Standard Template Library 是一种泛型编程
STL从广义上分为 容器(container) 算法(algorithm) 迭代器(iterator)
目前广泛认为STL有六大组件

容器

可以说容器就是将一些常用的数据结构用模版实现出来
容器中包括的常用数据结构有: 字符串(string) 定长数组(array) 动态数组(vector) 链表(list) 栈(stack) 队列(queue) 双端队列(deque) 树(tree) 集合(set) 映射(map)
根据数据在容器中的排列特性 这些数据分为序列式容器和关联式容器两种
序列式容器强调值的排序 序列式容器中的每个元素均有固定的位置 除非用删除或插入的操作改变这个位置 Vector容器 Deque容器 List容器等
关联式容器是非线性的树结构 更准确的说是二叉树结构 各元素之间没有严格的物理上的顺序关系 也就是说元素在容器中并没有保存元素置入容器时的逻辑顺序 关联式容器另一个显著特点是:在值中选择一个值作为关键字key 这个关键字对值起到索引的作用 方便查找 Set/multiset容器 Map/multimap容器

阅读全文 »

C++ 构造函数&运算符重载

构造函数:创建对象时调用的类成员函数 构造函数可以重载
默认构造函数:无参数构造函数 名称和类名相同
有参构造函数:名称和类名相同 参数列表的参数表示的不是类成员 而是要赋给类成员的值
拷贝(复制)构造函数:一种特殊的构造函数 函数名称和类名称相同 拷贝构造函数的参数列表里必须有一个参数是本类型的一个引用变量
析构函数:删除对象时调用的类成员函数 没有参数 在程序关闭前调用析构函数释放资源 析构函数无法重载
C++重载:C++允许在同一作用域存在多个功能相似的同名函数和运算符
运算符重载:重载的运算符是带有特殊名称的函数,函数名是由关键字operator和其后要重载的运算符符号构成的

阅读全文 »

gitalk

在Hexo下的next主题中配置gitalk评论插件
gitalk是一个基于 Github Issue 和 Preact 开发的评论插件
项目地址是 https://gitalk.github.io

阅读全文 »