读书笔记
雨落鸳鸯瓦
这个作者很懒,什么都没留下…
展开
-
windows核心编程总结
windows核心编程总结第一章 错误处理1.常见windows函数返回值数据类型VOID:不可能失败BOOL:失败返回0,否则返回一个非0值HANDLE:失败返回NULL,否则HANDLE标识一个可操作的对象POVID:失败返回NULL,否则将标识一个数据块的内存地址2.定义自己的错误代码。第二章 字符和字符串处理1.字符编码。本地化的核心问题是处理不同字符集的问题。我们一直将文本字符串编码成一组以0结尾的单字节字符。2.unicode和ANSI字符串第三章 内核对象1.何为内存对原创 2020-12-01 10:52:22 · 1213 阅读 · 0 评论 -
Effective C++ 读书笔记-1让自己习惯c++
Effective C++ 读书笔记-1让自己习惯c++1.视C++为一个语言联邦 开始,C++只是在C的基础上加上一些面向对象的特性,后来的 C++更加大胆,它多了异常、模板编程及STL等。 C++由C、面向对象C++、模板C++和STL四部分组合而成。2.尽量用const、inline、enum来替换#define 用编译器替换预处理器...原创 2020-09-15 23:13:38 · 175 阅读 · 0 评论 -
YAML语言学习笔记
YAML学习笔记YAML是专门用来写配置文件的语言,是一种对人类设计友好的数据序列化语言,十分简洁和方便。一、 YAML的基本语法规则:① 大小写敏感;② 文件名以.yaml结尾;③ 使用缩进表示层级关系;④ 每个冒号后面一定要有一个空格;⑤ 缩进不允许使用Tab,只允许使用空格;⑥ 想要表示列表项,使用一个短横杠加一个空格;⑦ 缩进的空格数目不重要,相同层级的元素左侧要对齐;...原创 2020-04-26 17:53:39 · 239 阅读 · 0 评论 -
yum软件包学习记录
Yum学习笔记一、简介Yum是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器。可以一次安装所有依赖的软件包,无须频繁的一次次下载、安装。二、常用命令及参数1.列举包文件列出资源库中所有可以安装或更新的rpm包yum list列出资源库中特定的可以安装或更新以及已经安装的rpm包yum list perl //列出名为perl 的包yum list pe...原创 2020-04-26 17:54:52 · 459 阅读 · 0 评论 -
大话存储终极版阅读笔记
大话存储读书笔记一、存储技术的发展,计算机I/O1.存储发展存储即记录信息,伴随着人类活动出现的一门技术。存储的发展历史:竹简和纸张—选数管—穿孔卡—穿孔纸带—磁带—磁鼓存储器—硬盘—软盘—光盘—Flash芯片和卡式存储—硬盘阵列—大型网络化硬盘阵列2.计算机I/O什么是I/O,就是IN和OUT的意思。CPU需要从内存中提取数据来运算(IN),运算完再放回内存中去(OUT)。对于磁盘来说,IN是数据写入磁盘的过程,OUT是指数据从磁盘读出的过程。2.1 PCI总线PCI总线是目前台式机与服务原创 2020-06-10 14:29:16 · 779 阅读 · 0 评论 -
MySQL数据库知识点总结
MySQL数据库知识点总结一.SQL基础数据库:是一个以某种有组织的方式存储数据的集合(容器)。表:某种特定类型数据的结构化清单(文件)。主键:唯一标识表中每行的这个列SQL:结构化查询语言,一种专门用来与数据库通讯的语言。二.MySQL简介MySQL:是一个客户机-服务器DBMS三.使用MySQL显示表的信息;SHOW DATABASES;获取数据库内表的列表:SHOW TA...原创 2020-01-27 19:01:19 · 890 阅读 · 0 评论 -
Linux多线程服务端编程知识点总结
Linux多线程服务端编程知识点总结重点讲解多线程网络服务器的一种IO模型,即one loop per thread。以muduo网络库为例,讲解这种模型的编程方法及注意事项。muduo是一个基于非阻塞IO和事件驱动的现代C++网络库。第一部分 C++多线程系统编程线程安全的对象声名周期,...原创 2019-10-29 00:02:58 · 463 阅读 · 0 评论 -
软件测试
软件测试第一部分 数学背景测试概述测试的主要原因是对质量或可接受性做出判断,以及发现问题。基本定义,错误、缺陷、失效、事故、测试、测试用例标识测试用例,功能性测试和结构性测试第二部分 功能性测试边界值测试...原创 2019-10-29 00:01:52 · 94 阅读 · 0 评论 -
STL源码剖析读书笔记 第6章 算法
第6章 算法6.1 算法概观算法,解决问题的方法。质变算法,改变元素内容。拷贝(copy)、互换(swap),替换(replace)“非质变算法”,不改变元素的值。查找(find)、匹配(search)、计数(count)...原创 2019-08-15 12:25:21 · 155 阅读 · 0 评论 -
算法图解读书笔记 第5章 散列表
散列表散列表用途广泛,学习散列表的内部机制:实现、冲突、和散列函数假设你在杂货店上班,顾客买东西时你需要查找价格,如果商品名称没按字母排序你查找apple时间复杂度为O(n)(简单查找),如果按字母排序了,时间复杂度为O(logn)(二分查找),当然如果能找到一个背诵了所有商品的雇员就再好不过了,因为他能立即回答出商品的价格,时间复杂度为O(1),5.1 散列函数将输入映射到数字,条件是;...原创 2019-08-12 09:08:55 · 141 阅读 · 0 评论 -
算法图解读书笔记 第6章 广度优先搜索
广度优先搜索本章介绍的是图,首先介绍什么是图,然后再介绍一种图算法----广度优先搜索。广度优先搜素能够让你找出两样东西间的最短距离,含义很多,比如:①编写国际象棋AI,计算最少多少步获胜②编写拼写检查器,计算最少编写多少个地方就可以将拼错的单词改为正确的单词。③根据你的人际关系网络找到最近的医生。6.1 图简介例如前往东直门,最短路径需要倒2次车(3步),这种问题成为最短路径问题。...原创 2019-08-12 11:36:43 · 164 阅读 · 0 评论 -
UNP卷2读书笔记 第二部分 消息传递
第4章 管道和FIFO4.1 概述管道是最初的UNIX IPC形式。尽管对许多操作系统很有用,但因为它没有名字,从而智能由有亲缘关系的进程使用。4.2 一个简单的客户——服务器例子图中,客户从标准输入(stdin)读进一个路径名,并把它写入IPC通道。服务器从该IPC通道读出这个路径名,并尝试打开文件来读。如果服务器能打开该文件,它就读出其中的内容,并写入IPC通道,以作为对客户的响应;...原创 2019-08-12 15:44:37 · 150 阅读 · 0 评论 -
UNP卷2读书笔记 第三部分 同步
同步第7章 互斥锁和条件变量7.1 概述为允许在线程和进程间共享是数据,同步是必须的。7.2 互斥锁:上锁和解锁互斥锁用于保护临界区,以保证任何时刻只有一个线程/进程在执行其中的代码。7.3 生产者-消费者问题又称为有界缓冲区问题隐式的同步: 生产者和消费者不知道内核在执行同步当共享内存区用作生产者和消费者的IPC形式时,必须执行某种类型显示的同步。线程间共享的全局变量命令...原创 2019-08-12 20:49:35 · 131 阅读 · 0 评论 -
STL源码剖析读书笔记 第7章 仿函数
第7章 仿函数7…1 仿函数概观一种具有函数特质的对象7.2 可配接的关键扮演一种“策略”角色,能让STL算法更灵活的演出。7.2.1 unary_function用来呈现一元函数的参数型别和返回值型别。7.2.2 binary_function用来呈现二元函数的第一参数型别,第二参数型别以及返回值型别。7.3 算数类仿函数7.4 关系运算类的仿函数7.5 逻辑运算类仿函...原创 2019-08-16 22:25:48 · 115 阅读 · 0 评论 -
算法图解读书笔记 第7章 狄克斯特拉算法
狄克斯特拉算法继续讨论图,介绍加权图。为了能够找出加权图中前往X的最短路径,引出此算法。前一章使用的是广度优先搜索算法,找出的是最少的路径,但不一定是最快的路径,想要找出最快的路径需要狄克斯特拉算法。7.1 使用狄克斯特拉算法狄克斯特拉算法有4个步骤:① 找出在最短时间内到达的节点。② 更新该节点的邻居的开销③ 重复这个过程,直到对图中的每个节点都这样做了。④ 计算最短路径7.2...原创 2019-08-13 10:55:57 · 143 阅读 · 0 评论 -
算法图解读书笔记 第8章 贪婪算法
第8章 贪婪算法8.1 教室调度问题思路:①选取结束时间最早的课,它就是这件教室上的第一节课。②选择必须第1节课结束后才开始的课,选择结束最早的为第二堂课。③重复贪婪算法很简单:每步都采用最优的做法。8.2 背包问题8.3 集合覆盖问题方法:①列出每个可能的广播台集合。②在这个集合中选择覆盖全美50个州的最小集合近似算法①选出这样一个广播台,即它覆盖了最多的为覆盖州。...原创 2019-08-13 11:40:15 · 135 阅读 · 0 评论 -
STL源码剖析 第5章 关联式容器
第5章 关联式容器STL关联式容器分为set(集合)和map(映射表)两大类,底层均是红黑树。关联式容器每个元素都有一个键值(key)和一个实值(value)。5.1 树的导览5.1.1 二叉搜索树以前讲过,二叉树是指“任何节点最多允许两个子节点”,二叉搜索树,任何节点的键值一定大于它左子树每个节点的键值,一定小于它右子树中每个节点的键值。5.1.2 平衡二叉搜索树“平衡”...原创 2019-08-15 11:53:09 · 143 阅读 · 0 评论 -
STL源码剖析读书笔记 第3章 迭代器概念与traits编程技法
第3章 迭代器概念与traits编程技法3.1 迭代器设计思维 —STL关键所在3.2 迭代器是一种smart pointer迭代器是一种行为类似指针的对象3.4 Traits编程技法 - STL源码门钥迭代器所指的物件的型别,称为该迭代器的value type。所谓value type 是指迭代器所指对象的型别。 型别2:difference type ,用来表示两个迭代器之间...原创 2019-08-14 15:43:59 · 151 阅读 · 0 评论 -
深度探索C++对象模型读书笔记 第1章 关于对象
第1章 关于对象1.1 c++对象模式简单对象模型表格驱动对象模型C++对象模型对象模型如何影响程序1.2 关键词所带来的差异关键词的困扰策略性正确的struct关键字1.3 对象的差异C++程序模型直接支持三种(程序设计典范)1.程序模型2.抽象数据类型模型3.面向对象模型(通过class封装起来)C++以下方法支持多态1.经由一组隐含的转化操作2.经由...原创 2019-08-14 11:51:20 · 94 阅读 · 0 评论 -
UNP读书笔记第4章 基本套接字编程
基本套接字编程1.socket函数为了执行网络IO,一个进程必须做的第一件事就是调用socket函数,指定期望的通信协议(TCP/UDP/UNIX的字节流协议),AF_XXX和DF_XXX,AF_前缀表示地址族,DF_前缀表示协议族。2.connect函数 TCP客户用connect函数来建立与TCP服务器的连接。...原创 2019-07-30 22:09:05 · 130 阅读 · 0 评论 -
UNP读书笔记第一章
#第一章1.客户端和服务器间通过协议(如TCP)进行通讯,一个具体的例子代码中包括①头文件②命令行参数③创建TCP套接字(socket)④指定服务器的IP地址和端口⑤建立与服务器的连接(connect)⑥读入并输出服务器的应答(read,fputs)⑦终止程序(exit)通过包裹函数来缩短程序,首字母大写,同时又保证测试的每个函数调用,检查是否返回错误。2.一个简单的TCP时间获取服务器程序,...原创 2019-07-26 16:19:42 · 158 阅读 · 0 评论 -
UNP读书笔记第二章
#UNP读书笔记第二章传输层:TCP/UDP/SCTP1.用户数据报协议UDP TCP是一个字节流服务,UDP是无连接的,udp客户和服务器之间不存在任何长期的关系2.传输控制协议TCP TCP是可靠地,发送对端一个数据时要求对端必须返回确认TCP提供流量控制、TCP的连接是全双工的3.六控制传输协议SCTP 面向消息的,提供的服务类似tcp和udp,可靠的4.TCP的建立和终止...原创 2019-07-26 17:00:26 · 148 阅读 · 0 评论 -
UNP读书笔记第三章 基本套接字编程
基本套接字编程1.套接字地址结构大多数套接字都需要一个指向套接字地址结构的指针作为参数。2.值-结果参数从程序到内核传递套接字的地址结构函数:bind、connect、sendto。从内核到程序传递套接字的地址结构函数:accept、recvfrom、getsockname、getpeername3.readn,writen和readlinereadline函数每读一个字节数据就调用...原创 2019-07-26 17:42:35 · 108 阅读 · 0 评论 -
UNP读书笔记 第8章 基本UDP套接字编程
基本UDP套接字编程1. recvform和sendto函数这两个函数类似于read和write函数,不过需要三个额外的参数。sockfd、buff、nbytes这三个参数为描述符、指向读入或写入缓冲区的指针、和读写字节数。2.UDP回射服务器:main函数创建UDP套接字,捆绑服务器的众所周知接口。socket函数的第二个参数指定为SOCKET_DGRAM创建一个UDP套接字。代码:...原创 2019-08-05 16:20:17 · 213 阅读 · 0 评论 -
UNP读书笔记 第五章 TCP客户/服务器程序指示
TCP客户/服务器程序指示1.TCP回射服务器程序:main函数①创建套接字,捆绑服务器众所周知接口(SERV_PORT)。②等待完成客户连接③并发服务器(fork)2.TCP回射服务器程序:str_echo函数从客户读入数据,并把他们回射给客户。read函数从套接字读入数据,writen把其中的内容回射给客户。如果客户关闭连接,那么接受到客户的FIN将导致服务器子进程的read...原创 2019-08-01 15:06:44 · 135 阅读 · 0 评论 -
算法图解读书笔记 第3章 递归
递归递归是很多算法都使用的一种方法,学习如何将问题分为基线条件和递归条件。3.1 递归例子,盒子里面找钥匙(盒子里面还有盒子)方法一:①创建一个要查找的盒子堆②从盒子堆取出一个盒子,在里面找③如果找到的是盒子,就将其加入盒子堆中,以便以后再查找④如果找到钥匙,大功告成⑤回到第二步方法二:①检查盒子里的每样东西②如果是盒子就回到第一步③如果是钥匙就大功告成其实第一种方法使...原创 2019-08-08 09:36:08 · 190 阅读 · 0 评论 -
UNP读书笔记 第16章 非阻塞式I/O
非阻塞式I/O1.非阻塞读和写:str_cli函数①把描述符设置为非阻塞②初始化缓冲区指针③主循环:准备调用select④指定关注的描述符⑤调用select ⑥从标准输入read⑦处理非阻塞错误⑧read返回EOF⑨read返回数据2.非阻塞式connect当在一个非阻塞的TCP套接字上调用connect时,connect立即返回一个错误,不过已经发生的TCP三次握手继续进行。非阻塞的...原创 2019-08-05 18:35:42 · 157 阅读 · 0 评论 -
UNP阅读笔记 第六章 I/O复用:select和poll函数
I/O复用:select和poll函数1.I/O复用是啥?进程需要一种预先告知内核的能力,使得内核一旦发现进程指定一个或多个I/O条件就绪(输入已经准备好被读取,或者描述符已经能承接更多的输出),他就通知进程。这就是I/O复用。I/O复用典型使用在以下场景:①当客户处理多个描述符时,必须使用I/O复用。②一个客户同时处理多个套接字是可能的,不过很少见。③如果一个服务器要处理监听套接字,...原创 2019-08-01 17:15:37 · 184 阅读 · 0 评论 -
算法图解读书笔记 第4章 快速排序
快速排序学习分而治之。学习快速排序,快速排序使用分而治之的策略。4.1 分而治之例子,一个农场主将土地分成方块。步骤:①找出基线条件,这种条件必须尽可能简单。②不断将问题分解,知道符合基线条件。首先找两个大方块,会余下一个小长条,将小长条再分成俩大方块,继续分,知道分到两个小方块为止。工作原理:①找出简单的基线条件②确定如何缩小问题的规模,使其符合基线条件编写涉及数组的 递归函数时,...原创 2019-08-08 10:46:41 · 185 阅读 · 0 评论 -
算法图解读书笔记 第1章算法简介
算法简介1.引言①算法其实就是一组完成任务的指令。②二分查找从中间开始查找,其输入必须是一个有序的元素列表。一般而言,对于包含n个元素的查找用二分查找最多需要log2n,简单的只需要n步。③大O表示法1.3.1 算法的运行时间以不同速度增加二分查找的时间复杂度是O(logn),简单查找是O(n)1.3.2 理解不同的大O运行时间1.3.3 大O表示法指出了最糟糕情况下的运行时间...原创 2019-08-06 10:49:52 · 194 阅读 · 0 评论 -
UNP读书笔记 第7章 套接字选项
套接字选项1.getsockopt和setsockopt函数这两个函数仅用于套接字。其中,sockfd必须指向一个打开的套接字描述符,level指定系统中解释选项的代码或为通用套接字代码,或为某个特定于协议的代码。套接字选项粗分为两大类:一是启用或禁用某个特性的二元选项;二是取得并返回我们可以设置或检验的特定值的选项。2.检验选项是否受支持并获取默认值声明可能的值union,定义函数...原创 2019-08-02 12:50:57 · 130 阅读 · 0 评论 -
UNP卷2读书笔记 第一部分 简介
简介第1章 简介1.1 IPC是进程间通信的简称(运行在某个操作系统上不同进程间各种消息传递的方式),UNIX操作系统中,消息传递经历了如下几个发展阶段:1.管道 (广泛使用的IPC形式,既可以在程序中使用又可以在shell中使用,缺陷是只能在具有父子关系的进程间使用,有名管道的引入解决了这个问题)2.消息队列,可以在同一主机上有亲缘关系和无亲缘的进程之间。3.远程过程调用,它是从一个系统上...原创 2019-08-06 16:33:53 · 216 阅读 · 0 评论 -
算法图解读书笔记 第2章 选择排序
选择排序2.1 内存的工作原理将看演出时抽屉存放物品,每个抽屉可存放一个物品,看作是计算机内存的工作原理。2.2 数组和链表数组新加数据时需要重新申请内存,很麻烦。还有一种方法,是“预留座位”,但这样就造成了浪费,而且超出预留位还得转移。2.2.1 链表链表中的元素可存放在内存的任何位置,链表的每一个元素都存储了下一个元素的地址,从而是一系列随机的内存地址串在一起。在链表中添加元素很容...原创 2019-08-07 14:48:57 · 191 阅读 · 0 评论 -
算法图解读书笔记 第9章 动态规划
动态规划将大问题分解成小问题,并先着手解决这些小问题。9.1 背包问题9.1.1 简单算法尝试各种可能的组合,并找出价格最高的组合。9.1.2 动态规划先解决小背包的问题,再逐步解决原来的问题。9.2 背包问题先解决小问题,在逐步解决大问题9.3 最长公共子串9.3.1 绘制网络9.3.2 填充网络9.3.3 揭晓答案9.3.4 最长公共子序列9.3.5 最...原创 2019-08-14 09:57:47 · 198 阅读 · 0 评论 -
算法图解读书笔记 第11章 接下来怎如何做
接下来如何做这部分只取自己感兴趣的部分进行记录11.1 树二叉树类似下面这样:对于每一个节点,左子节点都比它小,而右子节点都比它大。假设你查找MAGGIE。为此,你先检查根节点。MAGGIE排在DAVID后面,因此你往右边找。MAGGIE排在MANNING前面,因此你往左边找。终于找到,二叉查找树平均速度O(logn),最糟糕O(n),有序数组查找时最糟糕也有O(log...原创 2019-08-14 10:22:16 · 141 阅读 · 0 评论 -
STL源码剖析读书笔记第五章---关联式容器
关联式容器5.1 树的导览树由节点(nodes)和边(edges)组成。最上面是根,根下面是子节点,如果最多允许两个子节点,则称此树为二叉树(binary tree)。5.1.1 二叉搜索树二叉搜索树可提供对数时间的元素搜索和访问,任何节点的键值一定大于它左子树节点键值并小于它右子树节点键值。二叉搜索树查找最大值和最小值比较简单,但是插入删除比较麻烦,插入值的时候,遇到比它大的值就往左走遇...原创 2019-07-29 17:47:01 · 226 阅读 · 0 评论