摘要: MFC 1. 消息响应流程 操作系统接收应用程序的窗口消息->将消息投递到消息队列中->应用程序调用GetMessage取出消息,通过TranslateMessage(消息转换)产生新的消息->应用程序调用DispatchMessage(消息回传给操作系统)->调用窗口过程,(swith/case) 阅读全文
posted @ 2019-08-26 10:06 行走的算法 阅读(293) 评论(0) 推荐(0) 编辑
摘要: Hash 1. 什么是hash 压缩映射 优点:哈希表使用了适度的时间和空间来在这两个极端之间找到了平衡。 2. 相关概念 散列表=哈希表; 散列函数=哈希函数; 3. 单向 它是一种单向函数是“非对称”的,即它是一个从明文到密文的不可逆的映射,只有加密过程,没有解密过程。 4. 哈希查找的两个步骤 阅读全文
posted @ 2019-08-20 22:18 行走的算法 阅读(313) 评论(0) 推荐(0) 编辑
摘要: 死锁 1. 死锁的四个条件: [1] 互斥条件:进程对所分配到的资源不允许其他进程进行访问,若其他进程访问该资源,只能等待,直至占有该资源的进程使用完成后释放该资源 [2] 请求和保持条件:进程获得一定的资源之后,又对其他资源发出请求,但是该资源可能被其他进程占有,此事请求阻塞,但又对自己获得的资源 阅读全文
posted @ 2019-08-17 22:02 行走的算法 阅读(151) 评论(0) 推荐(0) 编辑
摘要: 线程与进程 1. 进程定义: 一个具有一定功能的程序在一个数据集合上的一次动态执行过程。 2. 线程定义: 更小的独立运行的单位,是进程中的一条执行流程。 3. 进程和线程区别: [1] 根本区别:进程是资源分配最小单位,线程是程序执行的最小单位 [2] 在开销方面:每个进程都有独立的代码和数据空间 阅读全文
posted @ 2019-08-17 21:47 行走的算法 阅读(146) 评论(0) 推荐(0) 编辑
摘要: 服务器端怎么判断客户端已断开连接 阅读全文
posted @ 2019-08-16 14:59 行走的算法 阅读(2562) 评论(0) 推荐(0) 编辑
摘要: C++ 对象成员变量和成员函数的内存模型及权限 1.class 中的成员函数与成员变量是分开存放的 2.成员函数在内存中的位置 所有对象共享类中的成员函数,成员函数是函数,只可能存放在代码段里。 3.成员变量在内存中的位置 每个对象有独立的成员变量,成员变量是数据,数据只可能存放在栈空间(运行时)、 阅读全文
posted @ 2019-08-16 14:15 行走的算法 阅读(626) 评论(0) 推荐(0) 编辑
摘要: Vecotr扩容 1. 扩容原理 初始时刻vector的capacity为0,塞入第一个元素后capacity增加为1。 不同的编译器实现的扩容方式不一样,VS2015中以1.5倍扩容,GCC以2倍扩容。 对vector的任何操作,一旦引起空间重新配置,指向原vector的所有迭代器就都失效了 ;( 阅读全文
posted @ 2019-08-16 11:14 行走的算法 阅读(297) 评论(0) 推荐(0) 编辑
摘要: 持续更新中... std::forward_list(单向链表) std::forward_list为从++新增的线性表,与list区别在于它是单向链表。我们在学习数据结构的时候都知道,链表在对数据进行插入和删除是比顺序存储的线性表有优势,因此在插入和删除操作频繁的应用场景中,使用list和forw 阅读全文
posted @ 2019-08-14 15:41 行走的算法 阅读(1860) 评论(0) 推荐(0) 编辑
摘要: 持续更新中... 观察者模式: (https://blog.csdn.net/colinandroid/article/details/81113013) 观察者模式:定义对象间一种一对多的依赖关系,使得每当一个对象改变状态,则所有依赖它的对象都会得到通知并自动更新。 Subject:就是“被观察” 阅读全文
posted @ 2019-08-14 15:38 行走的算法 阅读(1450) 评论(0) 推荐(0) 编辑
摘要: 多线程 1. 为什么需要同步与互斥 都需要访问/使用同一种资源; 多个任务之间有依赖关系,某个任务的运行依赖于另一个任务。 2. 同步 按照预定的先后顺序运行,比如A 任务的运行依赖于 B 任务产生的数据。 3. 互斥 一个公共资源同一时刻只能被一个进程或者线程使用,当某个任务运行其中一个程序片段时 阅读全文
posted @ 2019-08-13 22:42 行走的算法 阅读(142) 评论(0) 推荐(0) 编辑