自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 学习STL标准库——容器

STL是什么? STL是 ——标准库,是一个高效的C++标准库,是一些 容器、算法和其他一些组件的集合。 STL是目的是为了标准化组件,这样就可以不用再构建新的组件、直接使用现成的组件 STL现在是C++的一部分,被内置在你的编译器中。 STL可以保存对象,内建对象和类对象。它们能安全的保存对象,...

2019-09-14 18:35:37

阅读数 59

评论数 0

原创 键盘输入一个RUL按下回车键后具体发生什么事情?

URL即为域名,例:http://www.baidu.com 大概发生以下步骤: 1.浏览器的地址输入URL按下回车键; 2.浏览器首先会检查当前的URL是否存在缓存,并检查缓存是否过期; (1)首先查找浏览器是否有缓存,近期浏览过的网站,浏览器会缓存DNS记录一段时间...

2019-09-04 11:08:40

阅读数 28

评论数 0

原创 HTTP状态码有哪些?分别代表什么意思?

HTTP状态码: 100:继续,continue 200:请求成功,并且服务器创建了新的资源 202:服务器已经接受请求,但是尚未处理 301:请求的网页已经永久移动到新位置 302:临时性重定向 303:临时性重定向,且总是以get方式请求新的URL 304:自从上次请求后,请求的...

2019-09-03 22:11:41

阅读数 72

评论数 0

转载 同步异步、堵塞非堵塞的区别

同步和异步关注的是: 消息通信机制; 阻塞和非阻塞关注的是:程序在等待调用结果(消息,返回值)时的状态. 1.同步与异步 同步:就是在发出一个*调用*时,在没有得到结果之前,该*调用*就不返回或者不能继续向下之执行。但是一旦调用返回, 就得到返回值了。换句话说,就是由*调用者*主动等待这...

2019-09-03 20:19:42

阅读数 63

评论数 0

转载 select、poll、epoll总结

select、poll、epoll总结 ...

2019-09-01 10:50:35

阅读数 22

评论数 0

原创 C++——单例模式

单例模式是什么? 单例模式其实就是设计一个类,并在程序中这个类中只能实例化一个对象,不允许有多个对象产生。 举一个非常简单的例子帮助理解一下,程序就好比一个学校,一个学校当然就只能有一个校长,不能有多个,对吧,要是多个那到底谁说话管事呢! 校长就好比 这个实例,只能实例化一个,不允许多个。 我们一...

2019-08-24 19:13:54

阅读数 41

评论数 0

原创 进程篇——进程间通信《消息队列》

一、什么是消息队列? 消息队列就是消息的链表,存放在内核中并由消息队列标识符表示。 消息队列提供了一个从一个进程向另一个进程发送数据块的方法,每一个数据块都可以被认为是有一个类型,接收者接受的数据块可以有不同的类型。 但是和管道类似的是,它有一个不足就是每个消息的最大长度是有上限的(MSGMAX)...

2019-08-22 20:13:03

阅读数 18

评论数 0

原创 进程篇——进程间通信方式《管道》

一、进程间通信(IPC)** 我们知道进程之间都是相互独立的,任何一个进程的全局变量在另一个进程中是看不到的,如果进程之间需要交换数据,那么是需要通过内核的。进程间通信的本质就是 让两个进程看到共同的资源。 进程间通信的目的 1. 数据传输:一个进程需要将它的数据发送到一个进程; 2. 资源共享:...

2019-08-21 17:41:00

阅读数 25

评论数 0

原创 进程篇——信号

信号是什么? 信号其实就是传递的一种信息,让我们能根据这个信息进一步的去处理响应的事件。比如说:红绿灯,绿灯亮了,这就是一个信号,提醒我们此时可以安全的过马路了。比如我们键盘按下:Ctrl-C 给前台进程发送信号,终止进程。 对于信号的理解,我们可以类比现实生活,举个例子:老师给我们布...

2019-08-21 14:10:05

阅读数 29

评论数 0

原创 C++中全局变量和局部变量的区别

可从下面四个方面进行区别: 作用域: 全局变量作用于整个程序; 局部变量作用于当前函数。 2.内存分配: 全局变量内存分配在自由分配区; 局部变量分配在栈区。 3.生存周期不同 全局变量:跟随系统的创建而创建,销毁而销毁; 局部变量:局部函...

2019-08-20 16:09:38

阅读数 300

评论数 0

原创 C++:指针和引用的区别

知识扩充: 使用指针的优点和必要性: 指针能够有效的表示数据结构; 能动态分配内存,实现内存的自由管理; 能方便的使用字符串; 便捷高效的使用数组; 指针直接和数据的存储地址有关: 比如 : 值传递没有地址传递高效,因为值传递先从实参的地址取出值,再赋值给形参代入函数计算; 指针则是...

2019-08-20 16:07:54

阅读数 20

评论数 0

原创 C++中class和struct的区别

C中的struct不能有函数,但是C++中可以。 C++中的struct对C中的struct进行了扩充,它已经不再是一个包含不同数据类型的数据结构了。它已经获取了太多的功能。 Struct能包含成员函数吗? 能! Struct能继承吗? 能! Struct能实现多态吗? 能! 三方面: ...

2019-08-20 16:04:05

阅读数 13

评论数 0

原创 进程篇——进程创建-fork及vfork

扩展内容: 我们都知道程序在系统中是以进程为单位运行的,进程是可执行程序运行的单元。进程执行过程中就需要OS为其分配可供执行的资源。其中最难理解的就是 内存资源的分配,OS到底是怎么为新进程合理的分配资源呢,这就产生了虚拟地址空间的概念。 1.虚拟地址空间和物理内存 虚拟内存存在的意义: ...

2019-08-12 11:50:45

阅读数 39

评论数 0

原创 进程篇——了解库文件、静态库及动态库的定义和区别

什么是库文件 在Windows和linux平台下都大量存在着库。 库文件是预先编译好的方法的集合,都是按照可重用的规则编写的,通常通过一组由相关联的函数组成以执行某项常见的任务。比如说我们提前要写好一些数学公式的实现,将其打包成库文件,然后我们以后只需要使用库文件即可,不用再需要重新编写。 标...

2019-08-10 16:21:01

阅读数 28

评论数 0

原创 进程篇——了解Makefile文件

一个工程中的源文件不计其数,其按照类型、功能、模块分别放在若干个目录中,Makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重编译,甚至进行更复杂的功能操作。 Makefile文件主要包括五方面内容: 显示规则、隐晦规则、变量定义、文件指示、注释 ...

2019-08-10 16:19:27

阅读数 23

评论数 0

原创 进程篇——程序编译链接的过程

一个源文件生成最终的可执行文件的过程可以分为四步: 预编译 编译 汇编 链接 如下图运行过程: 使用gcc命令不跟任何的选项的话,会默认执行预编译、编译、汇编、链接这整个过程,就会得到一个可执行文件,默认为a.out 1.预编译 gcc -E hello.c/ *-o...

2019-08-10 16:18:26

阅读数 28

评论数 0

原创 理解进程、线程的含义及区别

什么是进程? 概念:进程是操作系统动态执行的基本单元,进程就可以说是运行的一段程序(程序:存储在磁盘的可执行文件),当我们有很多程序同时执行时,就有了一种类似于排队的模式,就比如说我去银行柜台取钱,为了同时进行,我们可以规定让每一个人一次性只能取500块钱,取完之后,下一个人接着取,如此循环...

2019-07-31 15:18:28

阅读数 358

评论数 0

原创 C++——oop思想

oop:面向对象编程(object oriented programming),是一种计算机编程架构。 对象是由数据和容许的操作组成的封装体,和客观实体有直接对应关系,一个对象类定义了具有相似性质的一组对象。而继承性是具有层次关系的类的属性和操作进行共享的一种方式。所谓面向对象就是基于对象概念,...

2019-07-25 15:56:30

阅读数 39

评论数 0

原创 关键字static的作用和用途

在C语言中,关键字static的意思是静态的,主要有三种作用:(修饰函数,全局变量,局部变量) (1)在函数体内,一个被声明为静态的变量在这一函数被调用的过程中其值维持不变。 (2)在模块内(但是在函数外),它的作用域范围是有限制的,如果一个变量被声明为静态的,那么该变量可以被模块内所有的函数...

2019-07-24 20:45:53

阅读数 25

评论数 0

原创 详解const 用法

const关键字的基本功能和用法: 1.const的用法: (1)定义常量 (2)修饰函数的参数 (3)修饰函数的返回值 (4)修饰函数的定义体 1.将限定符声明为只读,修饰普通类型的变量。 在类型前/后加上关键字const,该变量必须被初始化,否则编译错误;该变量不能被重新...

2019-07-24 11:51:57

阅读数 15

评论数 0

原创 C和C++的区别

区别: c语言: 面向过程的语言,c++:面向对象的语言 .二者动态管理内存的方法不一样:c语言:使用malloc/free函数,c++除此之外还有new/delete关键字(知识点1:new和malloc的区别) 关于重载:c语言不支持重载,但是c++支持函数重载。c++支持重载的原因在于...

2019-07-22 20:45:49

阅读数 23

评论数 0

原创 【MySQL】资源分类,锁的分类、死锁的产生原因、避免和解决方法

什么是资源: 系统中有很多资源,在采用互斥性访问并且不可被抢占的资源就叫 临界性资源。 对于资源的分类: 1.根据使用次数分类: (1)可重用性资源: 每一个可重用性资源中的单元都只能被一个进程所使用,不允许多个进程共享。 进程使用资源顺序:a:请求资源(如果请求失败,则会...

2019-07-20 15:31:27

阅读数 29

评论数 0

原创 内存管理之内存池

在编程实践中,不可避免的要大量的用到堆上的内存。 例如我们在维护一个链表的数据结构的时候,每次新增或者删除一个新的节点的时候,就会在内存堆上进行内存的申请和释放;例如我们在维护一个动态的数组的时候,如果动态数组的大小不能满足程序需要的时候,那么也要在堆上分配新的内存。 系统默认的内存管理函数及...

2019-03-24 11:21:41

阅读数 39

评论数 0

原创 详解计算机网络——TCP/IP协议、TCP协议、UDP协议、三次握手,四次挥手

TCP/IP协议: 由网络层的IP协议和出传输层的TCP协议组成。通俗点讲:TCP负责发现传输的问题,一有问题就发出信号,要求重新传输,直到所有的数据完全传输到目的地,而IP协议是给因特网的每一台互联网设备都规定一个地址。 IP层接收由更低层(网络接口层例如以太网设备驱动程序)发来的数据包,并...

2019-03-02 16:58:05

阅读数 107

评论数 0

原创 详细解析直接插入排序和希尔排序

直接插入排序:     (1) 基本思想:             每一趟将一个待排序的记录,按其关键字的大小插入到已经排好序的一组记录的适当位置上,直到所有待排序记录全部插入为止。    直接用一个事例来解释说明:    给一无序的数列:49,38,65,97,76,13,27,49 ...

2018-12-04 19:54:53

阅读数 58

评论数 0

原创 位运算剖析——二进制中1的个数

什么是位运算: 位运算是把数字用二进制表示之后,对每一位上0和1的运算。 二进制是指:把数字的每一位都是0或者1。比如十进制的2转换为十进制为10,而十进制的10转化为二进制为1010。 与、或、异或的运算规律: 左移运算符 m << n 表示把 ...

2018-12-03 01:14:25

阅读数 59

评论数 0

原创 菲波那契数列

题目:求斐波那契数列的第n项 写一个函数,输出n,求斐波那契数列的第n项,斐波那契数列的定义如下: 第一种思路: 运用递归来解,以求解分f(10)为例,必须先要求得f(9)和f(8),同样要求得f(9),必须先要求得分f(8)和f(7)....依次类推,如下图: 如上图中,在树中...

2018-11-28 14:22:46

阅读数 59

评论数 0

原创 旋转数组的最小数字

题目:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。例如{1,2,3,4,5}是{3,4,5,1,2}的一个旋转,该数组的最小值为1。 解题思路: 对于这个已经排序的数组,仔细看其实是由两个排序的数组组成,我们取其中...

2018-11-28 13:49:48

阅读数 19

评论数 0

原创 从尾到头打印链表

题目:输入一个链表的头节点,从头到尾反过来打印出每个节点的值。 链表节点定义如下: Struct ListNode { int m_nKey; ListNode*m_pNext; }; 思路: 在不改变原来链表的结构时,我们可以用递归来实现这个函数。当每访问到一个节点的时候,先递归...

2018-11-28 13:46:38

阅读数 17

评论数 0

原创 替换空格

题目:请实现一个函数,把字符串中的每个空格替换成“%20”。例如,输入“we are happy”,则输出“we%20are%20happy”。 解题思路: 转换的规则是在 %后面跟上ASCII码的两位十六进制的表示。 即为 原来一个空格字符现在要替换成 ‘%’, ’2’, ’0’这三个字符...

2018-11-28 13:37:56

阅读数 23

评论数 0

原创 c++:类与对象,封装,访问限定符,默认成员函数

到底什么是类?什么是对象? 类是一个抽象的概念,它不存在于现实中的时间/空间里,类只是为所有的对象定义了抽象的属性与行为。 类是一个静态的概念,类本身不携带任何数据。当没有为类创建任何对象时,类本身不存在于内存空间中。对象是一个动态的概念,每一个对象都存在着有别于其它对象的属于自...

2018-11-26 00:13:59

阅读数 72

评论数 0

原创 函数的堆栈调用

每一个程序的执行都使用了栈,栈被定义为一个特殊的容器,用户可以将数据压入栈中(入栈,push),也可以将已经压入的数据弹出(pop,出栈),但栈这个容器必须遵守一条规则“先进后出”。 在操作系统中,栈是动态内存区域,程序可以将数据压入栈中,也可以将数据从栈顶弹出。在i386下,栈顶由称之为esp...

2018-11-19 21:53:12

阅读数 47

评论数 0

原创 虚拟地址空间的深度剖析

1.为什么引用虚拟内存: 当我们运行一个程序时,会将程序全部装入内存,然后运行。但是在运行时经常会出现一些问题: (1)继承地址空间没有隔离,没有权限保护。 由于程序都是访问物理内存,所以一个进程可以修改其他进程的内存数据,甚至修改内核地址空间的数据,很不安全。 (2)内存...

2018-11-19 21:00:50

阅读数 81

评论数 0

原创 宏定义#Define和Typedef的用法和区别

一:各自的定义 (一) Typedef 本身是一种存储类的关键字,在计算机编程语言中用来为复杂的声明定义简单的别名。 Typedef 的含义: 找到你所要声明的通用格式。例如这里申明 inta[4],b[4],c[4],只有a,b,c不同,但是他们有相同的申明模式 int<名字...

2018-11-10 15:30:22

阅读数 152

评论数 0

原创 进程篇——僵死进程和孤儿进程概念及处理方法

一:定义 首先明白,在linux系统中,子进程是通过父进程创建的,子进程自身再创建新的进程。并且父进程和子进程是异步运行的,即父进程永远无法预测子进程何时结束,当然也就不知道何时去收集子进程的退出信息了。 孤儿进程:在一个父进程退出后,剩余的它的一个子进程或者多个子进程仍然在运行,并没...

2018-11-10 15:09:51

阅读数 93

评论数 0

原创 动态内存malloc,calloc,realloc的详细用法

对于 指针,正确的分配动态 内存是十分重要的,本文将着重阐述动态内存分配函数malloc,calloc,realloc的用法。 1.对于malloc 作用是在 内存的堆区分配一个大小为size的连续空间,如果分配内存成功,函数返回新分配内存的首地址,否则,返回 NULL,注意:鉴于上述这点,一...

2018-04-27 21:49:17

阅读数 59

评论数 2

原创 递归的构成原理和实现

递归,就是在运行的过程中调用自己。 构成递归需具备的条件:函数嵌套调用过程示例 1. 子问题须与原始问题为同样的事,且更为简单; 2. 不能无限制地调用本身,须有个出口,化简为非递归状况处理。 在数学和计算机科学中,递归指由一种(或多种)简单的基本情况定义的一类对象或方法,并规定其他所有情...

2018-04-23 23:04:18

阅读数 53

评论数 0

原创 指针加减法的要点

指针加减法的要点 1. 指针加数字: int arr[10]={1}; int *ip=arr; ip++; //加一个整型单元格,因为是int型,所以加4个字节=sizeof(int) double brr[10]={12.3}' double *dp=brr; dp...

2018-04-19 00:29:44

阅读数 112

评论数 0

原创 揭开 const 的神秘面纱

const: 变量 int main() { int a=10; //可读可写 int b; b=a; //a的读取权限>b a=20; //a的写权限 左值: 放在赋值符号的左边 1.const: 定义常变量,将变量变成只读型的 int ca=10; //可读可写 ...

2018-04-14 00:07:59

阅读数 50

评论数 0

原创 字符数组

字符数组 定义:用来存放字符数据的数组,字符数组的一个元素存放一个字符。 例如:char c[10]; c[0]='I';c[1]='';c[2]='m'l;c[3]='a';c[4]='';...

2018-04-08 16:00:56

阅读数 65

评论数 0

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