摘要:
C++ 中保留了C语言的 struct 关键字,并且加以扩充。在C语言中,struct 只能包含成员变量,不能包含成员函数。而在C++中,struct 类似于 class,既可以包含成员变量,又可以包含成员函数。 C++中的 struct 和 class 基本是通用的,唯有几个细节不同: 1.使用 阅读全文
摘要:
fork()系统调用会通过复制一个现有进程来创建一个全新的进程。进程被存放在一个叫做任务队列的双向循环链表中,链表中的每一项都是进程PCB。 fork()运行时做的事情 当进程调用fork()后,当控制转移到内核中的fork()代码后,内核会做: 1.分配新的内存块和内核数据结构给子进程 2.将父进 阅读全文
摘要:
实现动态内存分配要考虑以下问题: 空闲块组织:如何记录空闲块? 放置:如何选择一个合适的空闲块来放置一个新分配的块? 分割:将一个新分配的块放置到某个空闲块之后,如何处理这个空闲块中的剩余部分? 合并:如何处理一个刚刚被释放的块? 通过在每个块的头部存放信息可以方便的定位到写一个块的位置,以及本块的 阅读全文
摘要:
void指针 void用在函数定义中可以表示函数没有返回值或者没有形参,用在这里表示指针指向的数据的类型是未知的。 表示一个有效指针,它确实指向实实在在的数据,只是数据的类型尚未确定,在后续使用过程中一般要进行强制类型转换。 malloc()函数:动态分配内存空间 原型: 作用:malloc()在堆 阅读全文
摘要:
重写仿函数(函数指针法) 阅读全文
摘要:
1.顺序容器 与内置数组相比,array是一种更安全、更容易使用的数组类型。 forward_list的设计目标是达到与最好的手写的单向链表数据结构相当的性能。因此,forward_list没有size操作。对其他容器而言,size保证是一个快速的常量时间的操作。 顺序容器|性能 : :|: : v 阅读全文