自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

凯的博客

一个小白菜

  • 博客(143)
  • 资源 (1)
  • 收藏
  • 关注

原创 Linux| |网络层以及数据链路层详解(不点进来会后悔的那种详解哦!)

网络层1. 基本概念主机:配有IP地址,但是不进行路由控制的设备路由器:配有IP地址,又能进行路由控制结点:主机和路由器的统称网络层:地址管理和路由选择2. IP协议插图:IP报文首部2.1 4位版本号(Version)指定IP协议的版本,对于IPV4来说是42.2 4位首部长度(IHL:Internet Header Length)IP头部长度的单...

2019-01-22 15:17:07 5197

原创 CONTINUING||重启

现在是20年的8月13日。这是一个让自己非常难忘的一天。此时的我已经实现了当时自己曾经许下的诺言,实现了自己当时年少无知的梦想。找到了一个好公司,有了一份好工作。(tx)但是这不是自己的梦想的终点,这只是自己一个新的起点,在这里自己将重新踏上征程,走向社会这个大熔炉。 回想当初说自己要付出天才所需要的99%的努力,但是现在默默的问了自己一句,你到底付出了那99%的努力了吗?我的回答:“没有”。大学生活总是美好的是每一个人所向往的,大学是没有课的,可以想玩就玩的,想谈恋爱就谈...

2020-08-13 01:07:30 623 1

原创 数据结构| |快速排序,二路快排,三路快排

快速排序、二路快排、三路快排1. 快速排序1. 概念快速排序采用分治的思想对数据进行排序 选择一个基准值 将比基准值小的放在基准值的左边,其余的(大于或者等于)放在右边 然后再对左边和右边继续进行划分,直到划分的区间长度为1 2. 时间复杂度快速排序划分区间的时候为O(logN),每次都需要时间复杂度为O(N)进行排序所以快排的时间复杂度是O(Nl...

2019-04-06 18:55:27 4367

原创 C++| |四种强制类型转化(剖析)

四种强制类型转换1. 出现的原因C语言的强制类型转换,有着两种。 隐式类型转换 显示的强制类型转换 举例:int main(){ int i = 1; double d = i;//隐式类型转换 int* p = &i; int address = (int)p;//显示强制类型转换 return 0;}缺陷...

2019-04-06 15:41:22 4243 1

原创 Linux| |如何高效切换目录

Linxu如何高效切换目录前言Linux下对于目录的切换,大家肯定会想到一个命令:cd命令cd命令确实方便,但是当需要频繁的切换目录的时候,cd命令可能比较麻烦了。比如:/home/yk/Practice/DayTopic/5.WarCode/home/yk/LinuxDir/LinuxCode/IO/epoll/new当需要一直在这两个目录下进行切换的时候,每次就非常...

2019-04-06 11:06:13 8098 1

原创 网络| |HTTP的缓存机制及原理

HTTP的缓存机制及原理前言Http缓存机制是作为web性能优化的重要手段。我们要更好的了解,Http的缓存原理才能更好的懂得其实如何工作的,以及平时老说的缓存是什么,并且是如何实现的?HTTP报文对于了解Http缓存之前,首先要了解一下Http的报文。这是因为对于Http得缓存就是和Http得报文有着极大的关系。Http报文,Http报文就是浏览器以及服务器之间进行通信是发送...

2019-04-05 01:09:05 3873

转载 网络| |CDN

CDNCDNCDN:Content Delivery Network,内容分发网络,一般也叫作缓存服务器是在客户端和服务器之间增加了一个缓存区,导致每次客户端访问一个目标服务器的时候,不需要每次直接到源服务器获取内容基本思路:尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,是内容传输的更快、更稳定。通过在网络各处放置结点服务器所构成的在现有的互联网基础上的一层...

2019-04-02 20:41:22 3768

转载 网络| |Https详解

TCP,IP协议族之数字签名与HTTPS详解前言因为HTTP协议本身存在明文传输,不能很好的验证通信方的身份和无法验证报文的完整性。HTTPS确切的说不是一种协议而是HTTP+SSL(TSL)的结合体。HTTP报文经过SSL层加密后交付给TCP层进行传输。SSL(安全套接层)主要采用的是RSA(非对称加密)与AES(对称加密)结合的加密方式。先通过RSA加密交互AES的密钥,然后通过A...

2019-04-02 17:35:22 457

原创 Linux| |IP地址的三类私有地址

IP地址的三类私有地址对于IP地址来说有着三种私有地址。三种私有地址如下:10.0.0.0 - 10.255.255.255172.16.0.0 - 172.16.255.255192.168.0.0 - 192.168.255.255 那么这三种私有地址有着怎样的区别呢?这三类私有地址不同之处仅仅在于就是他们所属级别不同。对于10开头:是A类地址。子网掩码:255....

2019-03-22 10:34:34 4315 3

原创 C++| |关联式容器

2019-03-02 19:35:18 464

原创 项目| |资源共享中心

资源共享中心是什么本质上就是一个http服务器,支持多人进行访问。在每一个人访问服务器的时候都可以对其进行文件列表展示,并且可以下载和上传内容,从而达到了一个资源共享的目的。实现了文件展示,文件下载,文件上传,断点续传流程首先在Linux下使用TCP协议搭建一个服务器,这个服务器要支持可以与多个客户端进行连接,那就需要一个线程池。应用层协议选择一个http协议进行数据的传输,当...

2019-03-02 08:38:43 1165

原创 Linux| |HTTP协议

HTTP协议# 前言HTTP(超文本传输协议)协议是处于应用层的协议 应用层协议 协议其实就是一种约定 应用层协议是程序员自己写的 HTTP是无状态协议 HTTP无状态协议,是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应...

2019-03-01 20:44:19 523

原创 数据结构| |各类排序的时间复杂度以及稳定性

各类排序的时间复杂度以及稳定性插入排序: 直接插入排序:O(N^2) 稳定 希尔排序:O(N^1.3) 不稳定 选择排序: 选择排序:O(N^2) 不稳定 堆排序:O(NlogN) 稳定 交换排序: 冒泡排序:O(N^2) 稳定 快速排序:O(NlogN) 不稳定 归并排序: 归并排序:O(NlogN) 稳定 桶排序:...

2019-03-01 20:00:57 875 1

原创 C/C++11| |小语法与知识点

C/C++11的小语法与知识点1.auto 在c/c++早期的时候,auto的含义是:使用auto修饰的变量,是具有自动存储器的局部变量 auto不再是一个存储类型指示符,而是作为一个新的类型指示符来指示编译器。auto声明的变量必须由编译器在编译时期推导而得的 //必须在新的编译器才可以跑过,旧的会出错​#include <iostream>using...

2019-03-01 17:43:01 813

原创 Linux| |资源共享中心(思维导图)

2019-02-27 16:12:59 504

原创 项目| |高并发内存池

高并发的内存池项目介绍:实现了高并发的内存池,对于多个线程来说申请内存的效率大幅度提高使用技术:C++,window的API内存池:一种动态内存分配的技术。内存池就是在真正使用内存之前,先申请分配一大块内存留作备用,当程序员申请内存时,从池中取出一块动态分配,当程序员释放内存时,将释放的内存在放入池内,再次申请内存可以取出来再用。在释放内存的时候,尽量与周边空闲的内存块进行合并。当内存...

2019-02-23 08:57:41 2245 6

原创 Linux| |对于TCP的学习

对于TCP的学习前言TCP称为“传输控制协议”。也就是要对数据的传输进行一个详细的控制 1. TCP的特点及其目的为了通过IP数据报实现可靠性传输,需要考虑很多事情,例如数据的破坏、丢包、重复、以及分片顺序混乱等问题。如不能解决这些问题,也就无从谈起可靠传输TCP通过检验和、序列号、确认应答、重发机制、连接管理以及窗口控制等机制实现可靠传输有连接:使用TCP协议进...

2019-02-20 20:26:26 7269

原创 面试题| |求一个数组的连续子数组的最大和

求一个数组的连续子数组的最大和方法一:暴力求解法【思路】:设置一个最大和(max),对于每一个元素都求出其最大的子数组的连续和(tmpMax),然后再与这个最大和进行比较代码实现:#include <iostream>#include <vector>​int main(){    //有多少个元素个数    int num = 0;  ...

2019-02-15 00:43:06 1159

原创 面试题| |对于一个字符串添加一个字符是否可以构成回文字符串

对于一个字符串对其添加一个字符可以构成回文字符串吗方法一:逆思维思考对于添加一个字符可以构成回文字符串的话,那么删除一个字符也就可以构成回文字符串了,所以就可以对于这个字符串的每一个字符进行删除,然后在判断是不是回文字符串,如果是的话,那就可以,否则不可以代码实现:#include <iostream>#include <string>​//判断一个...

2019-02-15 00:39:44 887

原创 Linux| |高级IO&&select,poll,epoll

IO模型1. 五种模型1.1 阻塞IO在内核将数据准备好之前,系统调用会一直等待,默认都是阻塞方式1.2 非阻塞IO如果内核还未将数据准备好,系统调用仍然会直接返回,并且返回EWOULDBLOCK错误码【注意】:对于非阻塞IO一般都需要程序员采用循环的方式尝试读写文件描述符,这个过程称为轮询。这对于CPU来说是较大的浪费。1.3 信号驱动IO内核将数据包准备好的时候...

2019-01-26 14:48:02 549

原创 Linux| |Shell学习

Shell学习# 符号1. 初识1.1 Shell定位Shell就是用C编写的程序,是用户是用Linux的桥梁。Shell就是Linux内核的一个外壳,调用内核的接口 1.2 Shell和BashShell如果是人的话,那么Bash就是好人或者坏人。也就是说Shell是内核程序的总称,Bash就是其中的一个 1.3 Shell的开发环境Shell编程就和ja...

2019-01-24 14:53:50 516

原创 C++| |模板进阶

模板进阶1. 非类型模板参数模板参数分为类型形参和非类型形参类型形参:出现在模板参数列表中,跟再class或者typename之后的参数类型名称非类型形参:就是用一个常量作为类(函数)模板的一个参数,在类(函数)模板中可将该参数当成常量来使用【注意】: 浮点数,类对象和字符串是不允许作为非类型模板参数的 非类型模板参数必须在编译期就能确定结果 例:使用非类...

2019-01-18 10:10:48 468

原创 C++| |多态

多态1. 概念对于不同的对象,去完成同一个行为的时候产生不同的状态 2. 定义和实现2.1 定义多态是在不同继承关系的类对象,去调用同一函数,产生了不同的行为。比如Student继承了Person。Person对象买票全价,Student对象买票半价在继承中要构成多态还有两个条件: 调用函数的对象必须是指针或者引用 被调用的函数必须是虚函数,且完成...

2019-01-15 11:37:56 436

原创 C++| |继承

继承1.概念继承(inheritance)是面向对象程序设计使代码复用的手段。它允许程序员在保持原有类特性的基础上进行扩展,从而产生新的类,称为派生类也叫作子类。继承是设计层次的复用 2. 定义2.1 定义格式插图:定义图注意:继承符号是:冒号 2.2 继承方式和访问限定符插图:继承方式插图:访问限定符 2.3 继承基类成...

2019-01-14 15:31:14 1394 1

原创 C++| |智能指针

智能指针# 前言为什么会有智能指针? 对于malloc出来的空间,有的时候忘记释放了就会造成内存泄露的问题 对于异常安全问题 链接:有关异常安全的问题 https://blog.csdn.net/qq_40399012/article/details/86438195#t5  1. 智能指针的原理RALL(Resource...

2019-01-13 22:52:26 373

原创 C++| |异常

异常# 前言异常是一种处理错误的方式。当一个函数发现自己无法处理的错误时就可以抛出异常,让函数的直接或者间接调用者处理这个函数 throw:当问题出现时,程序会抛出一个异常。通过throw关键字来实现 catch:在想要处理问题的地方,通过异常处理程序捕获异常,可以有多个catch捕获 try:try块中的代码标识将被激活特定的异常。后面通常跟这一个或者多个ca...

2019-01-13 21:30:18 389

原创 Linux| |HTTP协议

HTTP协议# 前言HTTP(超文本传输协议)协议是处于应用层的协议 应用层协议 协议其实就是一种约定 应用层协议是程序员自己写的 HTTP是无状态协议 HTTP无状态协议,是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应...

2019-01-13 11:01:57 921

原创 Linux| |书写一个TCP服务器

TCP服务器# 前序TCP是有连接的,是面向字节流的,是可靠的 1. 对于TCP的理解 TCP是传输层协议,我们书写的TCP网络服务器是站在应用层写的,调用的套接字API,也就是对于传输层封装的方法接口 对于TCP是有连接的,所以首先要建立连接之后再次进行通信 连接 先描述在组织 管理连接是要成本的 空间和时间...

2019-01-12 21:28:37 372

原创 Linux| |生产者与消费者模型

生产者与消费者模型# 前言对于生产者消费者模型必须要知道的:三二一原则三二一原则: 三种关系 生产者与生产者之间,生产者与消费者,消费者与消费者 生产者与生产者之间的关系:互斥 也就是对于生产者之间不能同时生产一个东西 消费者与消费者之间的关系:互斥 也就是对于消费者之间不能同时消费一个物品 ...

2019-01-09 18:09:15 537

原创 Linux| |线程池

线程池# 概念线程池就是一个拥有着许多的线程,可以当任务来临的时候直接让这些线对任务进行处理,而不需要这个时候在创建线程。所以线程池中的线程是提前创建好的 # 作用线程池可以增加效率,在处理任务的时候不需要浪费CPU创建线程的时间,所以可以增加效率 # 为什么要有线程池 创建/销毁线程会伴随着系统开销,过于频繁的创建/销毁线程会很大程度上的影响效率...

2019-01-07 10:16:22 422 3

原创 Linux| |对于UDP的学习

UDP# 前序UDP(用户数据报协议)没有连接的,是面向数据报的,是不可靠# 套接字就是IP地址+端口号 IP地址:4字节端口号:2字节,也就是说范围是0~65536 端口号分为 知名端口号 0--1023:http,ssh,ftp,telnet等一些协议端口号都是固定的,对于操作系统来说是不能对其进行分配的 一些固定的端口号...

2019-01-07 08:51:10 395878 55

原创 Linux| |对于信号量理解

对于信号量理解#semaphore(信号)1. 信号量就是一个计数器描述临界资源的数目(将共享内存分为了几个区域) 提供多个进程对共享数据对象的访问 也就是一个仅能由同步原语对其进行操作的整形变量信号量来控制临界资源 如果对信号量减1,也就是使用该信号量为进程分配了一个临界资源 如果对信号量加1,也就是使用该信号量释放了一个临界资源,如果此时等待队列中有...

2018-11-29 17:33:09 657

原创 C++| |vector的学习

vector vector是表示可变大小数组的序列容器 vector采用连续存储空间来存储元素。所以可以采用下标的方式vector的元素进行访问,和数组一样的高效。但是其又不像数组,它的大小是可以动态改变的,而且它的大小会被容器自己处理 本质:对于vector使用动态分配数组来存储其元素。当新元素插入到数组中时,如果空间不够的话,就会开辟空间。 vector分...

2018-11-25 22:23:17 606

原创 C++| |C/C++11的小语法与知识点

C/C++11的小语法与知识点 1.auto 在c/c++早期的时候,auto的含义是:使用auto修饰的变量,是具有自动存储器的局部变量 auto不再是一个存储类型指示符,而是作为一个新的类型指示符来指示编译器。auto声明的变量必须由编译器在编译时期推导而得的 //必须在新的编译器才可以跑过,旧的会出错​#include <iostream>us...

2018-11-20 17:20:07 464

原创 Linux| |pthread_cancel函数&&取消点

对于pthread_cancel函数以及取消点的理解1.pthread_cancel函数做了什么pyhread_cancel函数只是给线程发送了一个请求该请求是希望可以将该线程终止。 所以对于该请求的话,只是对于线程的一个建议 线程也可能就不会立即终止,会继续运行,直到运行到取消点的时候该线程才会退出  2. 取消点的理解 取消点是线程检查他是否被取消...

2018-11-19 16:28:39 4336

原创 Linux| |线程

线程1. 线程的概念1.1 什么是线程 线程是进程内部的一个控制序列 所有的进程都应该有着至少一个执行路线  1.2 进程与线程 进程是资源分配的最小单位 线程时程序执行的最小单位(调度) 进程的所有信息都是对线程共享的,包括可执行的程序文本,程序的全局内存和栈,堆内存以及文件描述符,但是线程也有着自己的一部分私有数据: ...

2018-11-18 23:33:31 361

原创 C语言| |c语言下如何输出彩色的字

c语言下如何输出彩色的字使用格式:样式开始+被修饰字符串+样式结束样式开始: \033[+参数1+:+参数2+:+参数3+m 参数1:代表背景色可选值和含义:字背景颜色范围:40 - 4940:黑41:深红42:绿43:黄色44:蓝色45:紫色46:深绿47:白色 参数2:代表字体色可选值和含义:字颜色:30 - 39 30:黑...

2018-11-18 01:06:21 12295 1

原创 C++| |C++入门

C++入门1.命名空间在c/c++中,变量,函数和后面要学到的类都是大量存在的,这些变量,函数和类的名称都将存在与全局作用域中,可能会导致很多冲突,使用命名空间的目的是对标识符的名称进行本地化,以避免命名冲突或名字污染,namespace关键字的出现就是针对这种问题的。1.1 命名空间的定义定义命名空间,需要用到namespace关键字,后面跟命名空间的名字,然后接一对{}即...

2018-11-16 14:28:31 1173

原创 Linux| |Linux小知识点

Linux小知识点1. & 表示在后台运行  2. 如何在vim页面下打开两个文档 使用vs命令。采用crtl+ww进行切换  3. 如何直接进行多行缩进呢? 直接在命令行模式下:敲出[5,12>]按下回车表示将5到12行进行缩进,如果是[5,12<]按下回车表示缩 在命令行模式下,将光标放到要缩进的行首,按下[行数...

2018-11-16 10:36:12 376

原创 C| |头文件中为什么只声明不定义,而类定义又可以放在头文件中

头文件中为什么只声明不定义,而类定义又可以放在头文件中首先要了解几个基本概念:编译单元对于c语言,每一个.c文件就是一个编译单元。仅仅从编译来说,各个编译单元之间没有联系 未解决符号表提供了在该编译单元引用,但是定义不在本编译单元的符号的地址(拥有者是编译单元) 导出符号表提供了本编译单元具有定义,而且可以提供给其他编译单元使用的符号和地址(拥有者是编...

2018-11-14 17:10:05 3421 1

数据结构课设| |迷宫问题

数据结构的课程设计,具有完整的功能,有着自己创建迷宫,系统随机生成迷宫,以及用递归求迷宫路径,用栈求迷宫路径。

2018-06-27

空空如也

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

TA关注的人

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