自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Zkr吖頭~的博客

相互学习,欢迎纠错。

  • 博客(26)
  • 收藏
  • 关注

原创 c++之继承

继承是OOP思想中很重要的一个特性: 一.继承简介 继承是使用现有的类或接口,扩展所需的功能,从而达到代码的复用的目的。关于继承,我们从五个问题着手,边解决问题边理解。 1.派生类都继承了基类的那些? 2.派生类继承基类成员的访问限定? **3.**protected和private的区别? 4.不给定继承方式,默认继承方式为? 5.基类和派生类同名方法之间的关系?二.继承 ...

2018-08-29 12:57:50 371

原创 必学的Git

1.Git简介 Git是世界上最先进的分布式版本控制系统,没有之一。用于敏捷高效的处理各种或大或小的项目。它为我们带来了很多方便,聪明到可以每次自动记录版本的改动。1.1四个区工作区(Working Area)暂存区(Stage)本地仓库(Local Repository)远程仓库(Remote Repository)1.2五种状态未修改(Origin)已修改(Mo...

2018-07-25 20:29:07 169

原创 对Nginx进程模型的理解

nginx模型有两种进程,master进程和worker进程。master进程主要用来管理worker进程,管理包含:接收来自外界的信号,向各worker进程发送信号,监控worker进程的运行状态,当worker进程退出后(异常情况下),会自动重新启动新的worker进程。而基本的网络事件,则是放在worker进程中来处理了。多个worker进程之间是对等的,他们同等竞争来自客户端的请求,各进程...

2018-07-25 20:21:39 3179 1

原创 题目解析——判断字符串是否是合法的IP地址

题目描述:给定一个字符串,判断该字符串是否是合法的IP地址。 代码实现:#include<iostream>#include<stdlib.h>using namespace std;int main(){ char ip_str[20]; cout<<"请输入ip:&a

2018-08-30 10:09:33 3609

原创 题目解析——负数在前,正数在后(奇数在前,偶数在后)

题目描述:给定一串数字,要求排序之后满足负数在前,正数在后(奇数在前,偶数在后)。代码实现:#include<iostream>using namespace std;void swap(int n,int m){ int tmp = 0; tmp = m; m = n; n = tmp;}void print(int * arr,i...

2018-08-29 17:46:32 1061

原创 linux之进程间五种方式的对比

1.管道( pipe ): 管道:分为有名和无名管道。 有名管道:可以发生在任意2个进程之间。通过mkfifo系统命令或者mkfifo()系统调用来创建出来一个供2个进程进行数据通信的管道。 对管道的访问类似于对文件的访问。也是调用系统函数open,read,write,close来管理管道。 无名管道:只可以发生在父子进程间。通过调用pipe来创建读端和写端。Fd[0]是读端,fd[1]...

2018-07-25 20:14:24 248

原创 编译链接过程

我们应该知道,一个.c文件经过编译链接过程会变成.exe文件(windows下)和.out文件(Linux下)的可执行文件。 我认为掌握编译链接原理对程序员来说很是重要。 首先,这样一个过程可以大致分为两个过程,即编译和链接过程。 对于编译过程又可以细分为预编译,编译,汇编三个过程。一.预编译 预编译过程主要处理那些源代码文件中以“#”开头的预编译指令,比如:头文件“#includ...

2018-04-24 16:24:32 367

原创 IO复用之select、poll和epoll的区别

查看select、poll和epoll的实现请看这里: select的实现:https://blog.csdn.net/qq_39110766/article/details/80041451 poll的实现:https://blog.csdn.net/qq_39110766/article/details/80042768 epoll的实现:https://blog.csdn.net/qq...

2018-04-23 10:38:57 220

原创 IO复用之epoll系统调用

IO复用的第三个系统调用就是epoll。 epoll并不是由一个函数来实现,而是一组函数。 一.epoll()函数 **I.**epoll函数的创建:#include<sys/epoll.h>int epoll_create(int size);唯一参数size只是给内核一个提示,告诉它需要多大的事件表;**II.**epoll内核事件表的操作:#inc...

2018-04-22 22:17:30 262

原创 IO复用之poll系统调用

poll的机制与select类似,与select在本质上没有多大差别,管理多个描述符也是进行轮询,根据描述符的状态进行处理,但是poll没有最大文件描述符数量的限制。poll和select同样存在一个缺点就是,包含大量文件描述符的数组被整体复制于用户态和内核的地址空间之间,而不论这些文件描述符是否就绪,它的开销随着文件描述符数量的增加而线性增大。 一.poll()函数#include&l...

2018-04-22 21:11:44 308

原创 IO复用之select系统调用

一.IO复用 io复用使得程序能够监听多个文件描述符。 以下情况下需要使用io复用: 1.客户端同时处理多个socket(如:非阻塞的connect技术); 2.客户端程序需要同时处理用户输入和网络连接(如:聊天室程序); 3.TCP服务器要同时处理监听socket和连接socket; 4.服务器要同时处理TCP请求和UDP请求(如:回射服务器); 5.服务器同时监听多个端口,或者处...

2018-04-22 18:48:25 439

原创 Linux之访问internet上的web服务器(HTTP的应用)

关于http的理论知识可以点这里 http.c的代码展示:#include<stdio.h>#include<stdlib.h>#include<fcntl.h>#include<assert.h>#include<unistd.h>#include<string.h>#include<arpa/ine...

2018-04-12 14:34:33 1983

原创 Linux之HTTP协议

资料:《图解HTTP》一.HTTP简介 (1) HTTP协议(超文本传输协议),是用于从万维网服务器传输超文本到本地浏览器的传送协议。 (2) HTTP基于TCP/IP通信协议来传递数据,包括HTML文本、图片文件和查询结果等。 (3) HTTP是一个属于应用层的面向对象的协议,工作于客户端-服务器架构以上。浏览器作为HTTP客户端通过URL向HTTP服务端(web)发送所有请求,Web...

2018-03-27 17:34:23 2339

原创 C语言之makefile简介及简单应用

其实makefile最大的优点就是提供了”自动编译”,只要内容编写好,一个make命令,整个工程就会自动编译程序,大大提高了软件开发的效率。 所以 会使用makfile还是一个很重要的技能哦!!!make工具最主要也是最基本的功能就是通过makefile文件来描述源程序之间的相互关系并自动维护编译工作。而makefile 文件需要按照某种语法进行编写,文件中需要说明如何编译各个源文件并连接生...

2018-03-11 16:31:16 982

原创 数据结构之哈弗曼树与哈弗曼编码

一.哈弗曼树和哈弗曼编码先知 哈弗曼树是二叉树中一种特殊的树,也被称为最优二叉树。其通过某种规则(权值)来构造出一哈夫曼二叉树,在这个二叉树中,只有叶子节点才是有效的数据节点,其他的非叶子节点是为了构造出哈夫曼而引入的!哈夫曼编码是通过哈夫曼树进行的一种编码,一般情况下,以字符‘0’与‘1’表示。编码的实现过程很简单,只要实现哈夫曼树,通过遍历哈夫曼树,规定向左子树遍历一个节点编码为“0”,...

2018-03-11 13:21:13 1130

原创 数据结构之排序2(快速排序及其优化)

前面写了四个简单的排序算法,学习的时候也觉得很好理解,没有难度,可是,到快速排序我差点被打败,还好本宝挺了过来,现在觉得快排及其优化还是相当简单了,可能当时学习的时候不在状态吧!所以,现在的你是否也被快排倒的脑子一团糟,没关系,跟我的思路一起往下走。。。 一.快速排序的基本思想 通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这...

2018-03-10 19:58:22 227

原创 c语言之分不开的数组和指针

据本人道听途说的统计,很多人表示,c语言学完对于数组还有点拿捏不准,对于指针那就不是拿捏不准的问题,整个到绝望边缘,其实啊,小编我刚学的时候也整天在怀疑人生,怀疑自己,回想自己为什么要报这样一个“脱头发,长痘痘”的专业,好好的去学个经济,让人经管学院妹子一样美美的不好吗?后来,当我从内心觉得编程牛逼,感受到编程的魅力时,我觉得整个人豁然开朗,对于问题也变得好理解一些,现在的我虽然也只是菜鸟,但是在...

2018-03-10 16:32:27 184

原创 Linux之消息队列机制

一.消息队列先知 其实,消息队列与命名管道有很多相似之处,但少了在打开和关闭管道方面的复杂性。但使用消息队列应为解决我们在,命名管道时遇到的一些问题,比如管道的阻塞问题。 消息队列提供了一种子啊两个不想管的进程之间传递数据的相当简单且有效的方法,与命名管道相比,消息队列的优势在于,它独立于发送和接收进程而存在。 消息队列提供了一种从一个进程想另一个进程发送一个数据块的方法。每个数据块都被认为...

2018-03-09 19:39:33 4377

原创 Linux之用信号量实现的共享内存机制

首先介绍一个概念IPC IPC(Inter-Process Communication)机制即进程间通信机制,我们最为熟悉的IPC机制有三种,即信号量、共享内存和消息队列。今天要介绍的共享内存机制就是IPC三大机制之一。 一.共享内存先知 共享内存是在两个正在运行的进程之间传递数据的一种非常有效的方法,它允许两个不想管的进程访问同意逻辑内存,虽然X/Open标准并没有对它做出要求,但是大多数...

2018-03-09 16:59:19 2232 1

原创 虚拟地址空间

首先,一个程序被加载到内存中首先会存在两种属性:静态分配内存和动态分配内存。 静态分配内存:是在程序编译和链接时就确定好的内存。(速度快,不易犯错,例如:全局变量和static变量等) 动态分配内存:是在程序加载、调入、执行测时候分配/回收的内存。线性空间在linux32位系统上有大约4G的大小,所以我们的虚拟地址空间总共也就是这4G大小。虚拟地址空间可以分为内核空间和用户空间。最高的1G...

2018-03-07 21:24:30 1011 1

原创 数据结构之排序1(直接插入,冒泡,希尔,选择)

排序,应该可以说在数据结构中占很重要的位置,我们常用的排序算法,可以分为两组: 一种是比较排序,主要有:冒泡排序,选择排序,直接插入排序,归并排序,堆排序,快速排序,希尔排序。 另一种是非比较排序,主要有:计数排序,基数排序,桶排序等。 今天我写的是自己对于冒泡排序,选择排序,直接插入排序,希尔排序四个排序算法的浅见。 排序算法,因为是算法,很多同学会觉得很绕,理不清思路,其实没有很难理...

2018-01-23 18:29:37 336 2

原创 数据结构之字符串匹配算法(BF算法和KMP算法)

字符串匹配算法: 就是给定两个串,主串(s)和子串(sub), 查找子串是否在主串里面,如果找到便返回子串在主串中第一个元素的位置下标,否贼返回-1,。 在这里我 们讨论的时候主要用字符串来举例实现。 总共有两个算法,分别为BF算法和它的优化算法KMP算法。 首先我们来讲一下BF算法,BF 算 法 即 朴 素 算 法 :它 的 实 现 方 式 是 这 样 的 , 假 定 我 们 给 出 字 ...

2018-01-22 12:32:19 4422 3

原创 数据结构之串的基本操作的实现(c语言)

我们先一起来看串的一些概念… 字符串(简称串),可以将其看作是种特殊的线性表,其特殊性在于线性表的数据元素的类型总是字符性,字符串的数据对象约束为字符集。串是由0个或多个字符组成的有限序列。一般记作:s = “s1 s2 s3 …. sn”,,其中,s是串名,用双引号括起来的字符序列称为串的值,si(11.串的定义:串是由零个或多个组成的有序队列。 2.串的长度:串中字符的数目称为串

2018-01-21 17:01:26 25545

原创 关键字之sizeof

sizeof哭着说:“你真的了解我吗?”。。。 对于sizeof这个关键字,其实我猜大家都知道一点,因为c语言初期就会接触到它,但是又了解的不是很透彻,对于基本数据类型,指针,数组,结构体,函数,联合体,类,位域成员,位域结构体等的字节计算能搞清楚吗?没事,往下看。 一.定义 首先:sizeof运算符的类型为size_t(size_t在头文件stddef.h中定义),它依赖于编译系统的值,此...

2018-01-19 15:19:33 459 2

原创 中缀表达式与后缀表达式的转换及后缀表达式的计算

一.后缀表达式的计算 后缀表达式: 指的是不包含括号,运算符放在两个运算对象的后面,所有的计算按运算符出现的顺序,严格从左向右进行。(不再考虑运算符的优先规则)。中缀表达式: 也就是我们日常最容易见到的表达式,从左至右考虑运算符的优先原则。首先,我们以电脑的思维计算后缀表达式,这里必须用到栈的知识,栈通俗来讲就像一个桶,它里边存放的东西必须满足先进后出的原则。我们以表达

2018-01-11 00:07:38 4716

原创 c语言复习之数据类型

c语言基本数据类型简介: c语言数据类型基本可分为四部分:一.整型:包括字符(char),短整型(short),整型(int)和长整型(long) 1,整型字面值 字面值是字面值常量的缩写,指定了其自身的值,并且不允许发生改变。比如说常量(声明为const的变量),在初始化后便不能改变其值。 当一个程序内出现整型字面值时,它属于哪一种整型值取决于其后添加的

2018-01-10 23:30:29 543

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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