自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 简单web服务器的实现(C++)

一、具体功能实现 GET方法请求解析 POST方法请求解析 返回请求资源页面 利用GET方法实现加减法 利用POST方法实现加减法 HTTP请求行具体解析 400、403、404错误码返回的处理 注意:!!本人也是小白一只,这是刚刚开始学习网络编程写的东西,存在很多问题。也未用到RA...

2018-09-20 20:41:25

阅读数 15436

评论数 12

原创 利用fanotify进行文件系统实时监测的认识

目录对最近学习Fanotify的一些理解Fanotify知识总结fanotify基本功能fanotify类型函数fanotify_init()fanotify_markfanotify使用运用中的问题 对最近学习Fanotify的一些理解 Fanotify (fscking all notific...

2019-08-20 15:26:35

阅读数 152

评论数 0

原创 同步、异步、阻塞、非阻塞IO总结(IO模型总结)

知识点概念IO操作概念同步、异步(IO模型中的概念,并非并发模式中的同步、异步)阻塞、非阻塞同步IO模型异步IO模型读写(read write)与阻塞和非阻塞各种IO模型异同对比 IO操作概念 在Unix系统中,一切都是文件。文件就是流的概念,在进行信息的交流过程中,对这些流进行数据的收发操作...

2019-04-09 22:51:53

阅读数 713

评论数 0

原创 HTTP协议进行多线程以及断点下载(没有实用意义的程序)

HTTP下载器实现实现功能具备知识点实现思路多线程下载原理.*td文件代码可扩展功能总结 写完个人感觉,没有啥实用意义是因为想从服务器上下载的东西基本都是支持HTTPS协议下载的,并非HTTP了。 实现功能 多线程下载 断点下载 进度条显示 具备知识点 HTTP请求以及响...

2019-03-26 22:01:22

阅读数 106

评论数 3

原创 利用dup dup2函数实现简单的CGI服务器原理

dup函数和dup2函数 dup,dup2都是属于创建文件描述符的函数,所以返回值也是一个文件描述符。有时候我们希望把标准输入重定向到一个文件的时候,或者把标准输出重定向到一个网络连接的时候,就可以通过这两个函数实现。简而言之,这两个函数就是复制文件描述符的。dup(oldfd)执行以后会返...

2018-08-02 20:50:24

阅读数 149

评论数 0

原创 利用gethostbyname()和gethostbyaddr()函数获取主机完整信息

函数原型: gethostbyname函数是通过主机名称获取主机的完整信息。name参数是目标主机的主机 名称。 gethostbyaddr函数是通过IP地址获取主机的完整信息。addr是网络字节序的IP地址,len参数是IP地址的长度,type参数是IP地址的类型(合法类型包括AF_IN...

2018-08-02 12:37:25

阅读数 1956

评论数 0

原创 数组中求四数之和(三数之和的思路的基础上)

题目:思路:请见三数之和点击打开链接因为是求四个数字之和,所以将i作为第一个数字,其他剩下的三个索引分别为left,mid,right,然后在i的遍历数组的时候,剩下的操作思路和三数之和是一样的。其中需要注意的是,因为求的是四个数字的和,所以left,mid,right分别就已经占用了三个数,所以...

2018-07-13 00:10:42

阅读数 420

评论数 0

原创 最接近的三数之和(三数组问题变种)

题目:思路:在三数字之和的解题思路上,将所有的三数字之和遍历,然后进行更新最小值即可。其中需要注意的是所给的target减去三数字之和的话可能会为负数,所以要将负数值处理为正数,然后看哪三个数字之和最接近target值。其中若三数字之和大于了target值的话需要将right向升序数组的前方移动,...

2018-07-11 13:08:34

阅读数 197

评论数 0

原创 求三数之和为零的三元组集合

题目:思路:题目要求三数之和为零,即:a+b+c=0; 那么若满足b+c = -a的话就满足题目的第一个要求啦。假设-a = tem 那么 b+c=tem就说明满足条件。这样的话三数之和变成了两数之和,再两个数字和的基础上,只需要找到一个tem为定点以后,然后再判断数组中剩下的数字两两相加是否等于...

2018-07-10 15:12:14

阅读数 1700

评论数 0

原创 正则表达式匹配问题(暴力求解)

题目:预备知识:(1)正则表达式的概念是对字符串操作的逻辑公式,是事前定义好的一些特定的字符以及特定字符的组合。这里题目中的p就是正则表达式(字符模式)要判断s是否满足p的字符模式。正则表达式是描述了一种字符串匹配的模式,用来检查一个串中是否含有某种模式的子串,或者将匹配的子串替代又或者从里面取出...

2018-07-04 15:47:54

阅读数 680

评论数 0

原创 判断一个整数是否为回文数

一、题目描述二、思路(1)可以将该整数转换成字符串,根据字符串的长度奇偶性来确定中间位置,然后首尾进行对比是否是回文数字。此时需要额外空间来存储字符串,然后进行判断(2)可以将整数的最后一半数字进行整数反转,然后将反转的部分与数字的前部分进行比较,判断是否是回文数。也可以将整个整数进行反转然后进行...

2018-07-03 14:02:50

阅读数 3900

评论数 0

原创 整数反转以及字符串转整数的实现

一、整数反转题目:给定一个 32 位有符号整数,将整数中的数字进行反转。示例1:输入:123输出:321示例2:输入:-123输出:-321示例3:输入:120输出:21注意:假设我们的环境只能存储 32 位有符号整数,其数值范围是 [−231,  231 − 1]。根据这个假设,如果反转后的整数...

2018-07-02 18:14:37

阅读数 364

评论数 3

原创 最长回文子串求解

给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为1000。示例:babad输出:bab(注意aba也是有效答案)思路:1、可以枚举出所有的子串,然后每次都判断该子串是否是回文,若是回文便更新最大长度,并且记录子串的开始位置和结束位置。2、可以从第一个字符为中心向两边检查...

2018-06-22 19:44:46

阅读数 45

评论数 0

原创 利用分治法求两个有序数组的中位数

也是看了一篇很好的博客,思路很清晰,只是有些地方感觉博主没有详细解释,后来理解了,做了一个小总结。原博客链接:点击打开链接题目还是昨天的那道题目:给定两个大小为 m 和 n 的有序数组 nums1 和 nums2 。请找出这两个有序数组的中位数。要求算法的时间复杂度为 O(log (m+n)) 。...

2018-06-20 22:47:58

阅读数 5215

评论数 2

原创 求两个排序数组的中位数

给定两个大小为 m 和 n 的有序数组 nums1 和 nums2 。请找出这两个有序数组的中位数。要求算法的时间复杂度为 O(log (m+n)) 。示例 1:nums1[1,3]nums2[2]中位数:2.0示例 2:nums1[1,2]nums2[2,3]中位数:(2+2)/2=2.0思路:...

2018-06-19 15:44:30

阅读数 218

评论数 1

原创 求字符最长且不重复的子串长度(暴力以及滑动窗口解决)

题目:给定一个字符串,找出不含有重复字符的最长子串的长度。示例:给定 "abcabcbb" ,没有重复字符的最长子串是 "abc" ,那么长度就是3。给定 "bbbbb" ,最长的子串就是 "b" ,长度是1。给定 &...

2018-06-15 16:05:34

阅读数 2558

评论数 1

原创 线性表的一些简单操作(C++实现)

#include<iostream> using namespace std; template<class T> class linearList{ public: virtual ~linearList(){}; virt...

2018-05-21 17:40:21

阅读数 683

评论数 0

原创 栈的简单实现

#ifndef _STACK_H#define _STACK_Hclass stack{private:    enum {MAX = 10};    int num[MAX];    int SIZE;public:    stack();    bool empty() const;    b...

2018-05-15 19:36:50

阅读数 59

评论数 0

原创 堆排序的思路以及代码的实现

关于堆的一些知识点回顾 堆是一个完全二叉树 完全二叉树即是:若设二叉树的深度为h,除第 h 层外,其它各层 (1~h-1) 的结点数都达到最大个数,第 h 层所有的结点都连续集中在最左边,这就是完全二叉树。 堆满足两个性质: 堆的每一个父节点数值都大于(或小于)其子节点,堆的每个左子树和右子树也是...

2018-05-09 23:52:56

阅读数 4270

评论数 2

原创 桶排序、冒泡排序、选择排序、快速排序回顾

桶排序 第一次了解桶排序的时候,是在C语言课本的一个题目。题目大概意思是要将三万个学生的成绩进行排名,分数从0分到100分。桶排序的时间复杂度时O(M+N)。所以就可以申请一个大小为100的为int类型的数组,然后将数组初始化为0,再将数组的下标看作为分数,把数组元素中存储的数值对应着获得该分数的...

2018-05-08 17:00:42

阅读数 127

评论数 0

原创 死锁小笔记

互斥锁(互斥量)互斥量可以帮助线程同步对共享资源的使用,防止线程A试图访问一个共享变量的时候,此时线程B正在对这个共享变量进行修改。目的保护共享变量的的访问。死锁死锁情况一般是一个线程需要访问多个不同的共享资源的时候,但是每一个资源又都由不同的互斥量来管理,当超过一个线程(比如子线程已经对互斥量b...

2018-02-02 21:28:22

阅读数 76

评论数 0

原创 两个变量的交换方法总结

几个不同于引入第三方变量的交换方法。。利用异或运算实现 #include<iostream> using namespace std;int main() { int a = 4; int b = 5; cout << "a= "...

2017-12-12 22:45:38

阅读数 141

评论数 0

原创 DFS和BFS学习总结

DFS深度优先遍历深度遍历就是在图中从一个顶点开始,按照一个规则不重复地走下去。就是不撞南墙不回头一样。假如从A顶点开始,按照一个规则去走(假如我们按照一直字典顺序走)那么就从A走到B再从B走到了C,走到C后再按照字典顺序的时候,发现A已经走过,那么此时就退回到C点,选择另一个D走下去。就和树的前...

2017-12-04 11:56:54

阅读数 157

评论数 0

原创 通过DFS和BFS判断无向图是否连通

基础定义无向图:没有方向的图 连通图:任意两个顶点可以直接或者通过其他顶点走通,那么就是连通图,和完全图需要区别(完全图是需要任意两个顶点直接有路)遍历图的基本方法来判断是否连通DFS和BFS有的步骤都是从一个顶点开始,然后判断该顶点是否被访问,而且该顶点和其他顶点是否有关系,若有关系并且没有访...

2017-11-27 22:18:30

阅读数 6713

评论数 1

原创 哈夫曼树的建立和哈夫曼编码

#include<iostream> #include<algorithm> #include<iomanip>#define MAXSIZE 30 using namespace std;/*哈夫曼编码的存储方式*/ typedef struct Node ...

2017-11-19 14:15:49

阅读数 329

评论数 5

原创 二叉树的递归与非递归遍历

#include<stdio.h> #include<stdlib.h> #include<unistd.h>#define Size 100 #define False 0 #define Ture 1/*树的存储结构*/ typedef struct Tre...

2017-11-19 14:08:22

阅读数 133

评论数 0

原创 cin输入错误处理

开始学习cin, cin.get( ), cin.getline( )觉得还好。直到昨天错误地写了一个代码的时候,发现输入不正确了。然后对这个问题进行了一些总结。cin(输入是以回车键结束,遇到空格停止读取)cin是从缓冲区读取数据的,那么当缓冲区有残留的数据的时候,按理来说cin也应该从缓冲区读...

2017-11-13 14:44:12

阅读数 610

评论数 0

原创 指针问题梳理

指针好像一直都是一个头疼的问题,从一级指针到二级指针的运用,总是经常出错。今天遇到的一个二级指针的问题,花了很多时间,想了一个比较合理的解释。今天在数据结构的实验中,用一个二级指针作为参数来写了一个二叉树的建立。大概的函数代码如下:存储结构如下: /*树的存储结构*/ typedef struct...

2017-11-09 20:24:55

阅读数 114

评论数 0

原创 TCP/IP协议族体系结构及其主要协议

一、主要四层协议系统注:顺序为从下到上存在在内核空间的: 数据链路层 网络层 传输层 存在在用户空间的: 列表内容 二、对四层协议系统的简单理解1、数据链路层(1)常用协议是ARP和RARP,其中RAP是根据IP地址获取一个物理地址,而RARP则是相反的,通过一个物理地址获得IP地址。(2)ARP...

2017-11-07 20:15:04

阅读数 819

评论数 0

原创 稀疏矩阵(快速定位转置)

三元表 三元表就是存储稀疏矩阵非零元素的行列位置及其元素值的一个表。对稀疏矩阵进行了压缩吧。 快速定位转置 该算法是对要被转置矩阵的三元表只进行一次扫描,使得所有的非零元素一次性就被存放到装置的三元表里。所以要预先确定原来矩阵每一列的第一个非零元素的位置,那么接下来的元素在转置的时候根据上一个...

2017-11-05 13:26:49

阅读数 278

评论数 0

原创 关于mac上没有include文件以及没有mysql.h的解决方案

前言必须要写一个博客(外加吐槽),哇,不会用Mac真的感觉这个系统简直就是反人类的系统,因为要用到C语言连接操作mysql,然后就要有一个头文件mysql.h,然而这个文件的库肯定是要自己装的,但是mac又不能向Linux系统的那个操作,一个apt-get install 就好了。然后我想试探性地...

2017-08-11 01:17:19

阅读数 3080

评论数 3

原创 了解回调函数的一些总结

回调函数第一次接触这个名词是在《linux C实战编程》的线程那一章上看见的,当时是condition.c中的一个程序不太理解,主要是其中调用了pthread_cleanup_push( )这个函数,其中是为了不可预见的程序退出导致占用资源得不到释放,通常使用回调函数来解决。于是开始关注了回调函数...

2017-08-06 13:32:36

阅读数 112

评论数 0

原创 pthread_cond_wait理解以及互斥锁与条件变量使用的总结

欢迎使用Markdown编辑器写博客学了两个周,也有了线程、进程的一些浅层理解,其中感觉比较难理解的就是线程的同步,线程的同步用了三种方法,一种是互斥锁的运用,还有就是条件变量的使用,最后是异步信号。 - 互斥锁基础知识 - 条件变量基础知识 - 条件变量与互斥锁的运用 - *pthrea...

2017-08-05 10:39:36

阅读数 1031

评论数 0

原创 文件描述符存在形式及其dup2函数的使用

最近写myshell的时候,用到了dup2这个函数,函数的形式看着很简单,但是当时就是很不理这么用的意义在哪里,不知道它具体是怎么实现重定向输入输出的。后来上网查了很多资料,从文件描述符开始来了解,想了想。文件描述符百度是这么说的:内核(kernel)利用文件描述符(file descriptor...

2017-07-30 18:51:44

阅读数 326

评论数 0

原创 unbuntu下readlien的安装和函数的一些使用总结

最近写myshell,其中一个基本的要求就是要实现命令的补全和,上下键翻命令,其中需要用到readline这个库。 安装readline 安装的话问题不太大,一个命令的事情。。。 unbuntu下,一般都是libreadline_dev软件包 $ sudo apt-get install li...

2017-07-30 14:16:11

阅读数 132

评论数 0

原创 进程与程序总结

进程的理解 程序的理解 程序与进程的关系 父进程与子进程关系 并行与并发的理解 进程的定义进程是程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。进程的性质动态性 独异性 并发性 独立性 异步性 交往性 结构性进程的存储进程是在内存上的,它由...

2017-07-29 00:11:03

阅读数 308

评论数 0

原创 对make和Makefile的理解

make和Makefile的简单理解 make就是一个命令,Makefile就是一个文件,两者之间的关系就是:make这个命令是通过Makefile这个文件去实,现的,在Makefile中,它告诉了命令make怎么去编译,怎么去链接文件。 听说只要makefile写的好,在工程中,很多很多文件的...

2017-07-20 15:04:30

阅读数 281

评论数 2

原创 指针的左值及其表达式的意义

最近总结了指针的一些表达方式,及其了解了C语言中左值及其右值的定义。 左值、右值定义 左值:左值就是能够出现在赋值符号左边的东西,右值就是能够出现在赋值等号右边的东西。 指针表达式 首先要了解两个符号的意思 &:取地址运算号 *:取指针指向的内存中的值 假如定义: char ch...

2017-07-19 15:54:52

阅读数 1501

评论数 0

原创 莫名其妙装好了oh-my-zsh

总体来说linux下有很多shell,不同的shell 使用者的体验也不一样吧。然后被学弟安利了一款shell中的终极shell,叫做oh-my-zsh。我也不太懂这些,最开始用的也是默认的bash。 首先查看下自己的shell jialu-MacBookPro ~ » cat /etc/shel...

2017-07-16 10:14:16

阅读数 866

评论数 0

原创 自定义函数中返回值为指针类型的问题(2)

上次写了一篇在自定义函数中定义一个数组,再用一个指针来指向该数组的首地址,最后返回该指针给主函数里面的一个指针,最后在主函数里输出该指针的值,有时候存在很大的隐患。相对自顶函数中返回值的问题,做一些恰当的处理来防止返回值正常的输出。解决方案 使用静态变量 下面的代码是我在做课程设计的时候,当时发...

2017-07-10 12:08:35

阅读数 739

评论数 0

提示
确定要删除当前文章?
取消 删除