自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

我会微积分

共享带来快乐

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

原创 C++——模板

类模板作用:建立一个通用类,类中的成员数据类型可以不具体指定,用一个虚拟类型代表template< class T>紧跟一个类,与函数模板区别在于紧跟在上式后面是类而不是函数template<class T1, class T2>class Solution{public: Solution(T1 a, T2 b) { this->a = a; this->b = b; } T1 a; T2 b;}void test(){ So

2021-10-25 19:33:31 124

原创 C++——多态

1.基本概念静态多态:函数重载、运算符重载,可以复用函数属于静态多态,地址早绑定,编译阶段确定函数地址动态多态:派生类和虚函数,地址晚绑定,运行阶段确定函数地址,启动运行后才能确定函数怎么走void func(Father &C){ C.done();}void test(){ Son B; func(B);}C++中允许父子之间的类型转换,将B的子类对象传递给父类对象时,地址是早绑定的,在编译阶段就确定了函数的地址,因此函数执行时,调用的是父类中的done函数,而不是

2021-10-19 17:26:14 186

原创 C++——继承

继承本质:减少重复代码语法:class 子类 : 继承方式 父类子类也称为派生类,父类也称为基类公共类:class gonngyong{public: //公共的成员属性和成员函数}继承:class Solution : public gongyong{public: //自身的成员属性和成员函数}...

2021-10-14 21:49:41 118 1

原创 C++——运算符重载

运算符重载:对已有的运算符重新定义,赋予其另一种功能,以适应不同的数据类型1.加号运算符重载①成员函数重载Solution C = C1.operator+(C2)Solutin operator+(Solution &C2){ Solution tmp; tmp->a = this->a + C2->a; return tmp;}②全局函数重载Solution C = operator+(C1,C2); //C2也可以是别的函数类型,实现对象和int等类

2021-10-11 20:14:28 91

原创 数据结构与算法--子序列问题

1.最长上升子序列leetcode300

2021-10-11 14:35:54 278

原创 C++——友元

友元:一个函数或者类可以访问另一个类中的私有成员1.全局函数作友元将friend 全局函数的声明放入类中;表示该全局函数是该类的好朋友可以访问类中的私有成员2.类作友元类外写成员函数:GoodGay::GoodGay{ building = new Building;}void GoodGay::visit(){ //如果Building类中m_SittingRoom成员是私有的,需要在building类中加上 friend class GoodGay; 表示这个类是本类的好朋友,这

2021-10-08 10:56:45 61

原创 epoll事件模型——ET和LT

1.水平触发(LT)缓冲区中剩余未读尽的数据会导致epoll_wait()返回,再次调用epoll_wait()时会继续处理此事件,直到缓冲区的数据读完2.边沿模式(ET)缓冲区剩余未读尽的数据不会导致epoll_wait()的返回,只有新的事件满足了才会触发,所有要求读事件时必须一次读完3.LT和ET比较边沿触发是一种高速的工作模式,只支持非阻塞,当服务器端读取客户端的数据时,不需要读取数据完整性时就可以满足要求时,选用ET模式,提高效率;边沿模式必须与非阻塞一起使用,保证所需数据的完整性,ep

2021-09-30 16:00:08 168

原创 多路I/O复用——epoll

1.epoll优点①不受最大文件描述符1024的限制,可以处理更多的事件②提高了效率,只有满足条件的文件描述符才能调用callback()函数③通过mmap实现用户空间和内核空间的通信2.epoll_create创建epoll文件描述符的句柄,指向的是一棵平衡二叉树(红黑树),返回的epfd文件描述符是红黑树的根节点int epoll_create(int size)size:创建的红黑树返回值:新创建的红黑树的根节点的fd失败:-13.epoll_ctlint epoll_ctl(

2021-09-28 22:52:59 96

原创 多路I/O复用——poll

1.select的缺点①监听文件描述符受限制,最大是1024②每次都要从0开始遍历文件描述符,效率低,需要自己增加满足条件的文件描述符数组提高效率,但增加了编码难度但select是对路/O转接中唯一支持跨平台的,win、linux等...

2021-09-28 16:54:47 102

原创 多路I/O复用——select

1.原理相对于多线程多进程的多路I/O复用,解决了服务器accept()的阻塞问题,当客户端有连接需求时,用select监听,服务器再启用accept(),select接收到服务器创建的监听套接字,用于监听是否有新的客户端连接,监听connect事件,同时服务器accept返回的cfd交给select用于监听是否有数据传送过来,监听read、write事件,服务器的读写也不用阻塞,同时处理大量的并发I/O2.函数int select(int nfds, fd_set *readfds, fd_set

2021-09-27 11:40:07 67

原创 libevent库--bufferevent函数分析

1.概述bufferevent是带有缓存区的事件对象,与常规event相对应,其主要应用于socket通信,具有两个缓冲区,读缓冲和写缓冲。读缓冲中有数据时,会触发读缓冲中的回调函数,在读缓冲回调函数中,内部数据只能读一次,使用bufferevent_read()从读缓冲中读数据;写缓冲中使用bufferevent_write()向写缓冲中写数据,一旦有数据,就会自动刷新,发送给对端,发送成功,写完后,回调函数会被调用,通知写数据完成(意义不大)。2.bufferevent架构①创建buffereve

2021-09-24 00:31:50 496

原创 libevent库的简单实现

1.定义libevent是一种轻量级事件触发的网络库,开源跨平台,专注于底层网络库;支持多种IO复用技术,支持定时器、异步IO和信号事件,libevent API提供了一种当某事件的条件发生时再去调用回调函数去处理机制2.特性libevent是基于“事件”的异步通信模型,同步通信是有时效地并行访问,防止顺序错乱,异步是指函数的注册时间和返回调用不是同一时间的,要等到某一个条件满足了才调用内核实现回调。3.libevent框架①创建event_basestruct event_base *even

2021-09-22 21:48:09 171

原创 计算机网络--应用层2

超级文本传输协议HTTP1.定义HTTP是浏览器和Web服务器之间应用层通信协议,Web服务器存放的都是超文本信息,浏览器需要通过HTTP协议传输所要访问的信息,HTTP规定了访问的格式和规则,以能够可靠地交换文件(文本、声音、图像等多种多媒体文件)2.统一资源定位符URL使用URL来定位互联网上上的资源,用户浏览页面的方式有两种,一种是在浏览器的地址窗口中键入所要找的页面的URL,另一种是在某一个页面中用鼠标点击一个可选部分,这时浏览器会自动在因特网上找到所要链接的页面。协议:http、htt

2021-09-20 22:11:58 80

原创 计算机网络--应用层1

1.定义:应用层协议定义了一种服务,用于解决一类问题,需要通过客户和服务器之间的通信来完成,协议通信是所采用的规则2.DNS域名解析协议域名:为了方便机器处理,需要将方便记忆的主机名转换为32位IP地址域名结构:采用层次树状结构的命名方法例如www.baidu.com,其中www是主机名,baidu.com是域名,主机名和域名构成了完全限定域。根:. 可以省略顶级域名:国家顶级域名(cn、us)通用顶级域名(com、org、net、edu)二级域名:可以是国家域名或者顶级域名下的顶级域名的名

2021-09-18 22:52:29 96

原创 vim常用操作命令

1.vi的三种工作模式命令模式 文本模式 末行模式vi打开一个文件,如果该文件存在就打开,不存在会自动创建一个-类型的普通文件,此时会进入命令模式,按i I a A O s S等命令会进入文本模式,可以进行代码编辑,按ESC退出文本模式,回到命令模式,按:进入末行模式,进入vi的最底端:w 保存文件并回到wq 保存文件并退出q 保存文件后才可以正常退出,否则要执行强制退出命令q! 强制退出,不保存文件按两次ESC或者执行w保存命令,退出末行模式,回到命令模式,在命令模式下,执行ZZ可以退出

2021-09-16 22:57:26 1049

原创 LINUX软件安装卸载

1.安装软件sudo apt-get install name如果上一条指令没有找到软件需要执行:进行本地网站名的sudo apt-get update

2021-09-15 20:29:48 124

原创 LINUX常用命令讲解大全

1.shell:命令解析器,在终端中输入命令时,会被shell解析,执行一个同名的可执行文件,可以通过cat /etc/shells 查看当前系统支持哪些shell,使用echo $SHELL,SHELL是环境变量$是取环境变量的值,查看当前操作系统正在使用的命令解析器。2.主键盘快捷键:ctrl+a 移动光标至开头ctrl+e 移动光标至末尾ctrl+d 删除光标后面的元素ctrl+u 删除光标前面的所有元素clear 清空屏幕cd .. 跳转到上一级目录cd - 跳转到上一次访问的目录

2021-09-14 22:45:19 127

原创 软连接和硬链接

软连接和硬连接软连接:相当于快捷方式,用软连接可以访问源文件ln -s file(已经存在的文件) file.softls -l 查看时软连接的大小,读写属性只是代表软连接本身的权限,通过软连接能否读写修改,要看源文件的权限;可以查看该软连接访问路径的大小创建软连接时,为保证该软连接可以在任意目录下执行,必须使用绝对路径ln -s /home/yonghu/file file2.soft硬链接:对硬链接的文件进行修改,会使其他所有硬链接的文件,包括源文件都发生改变,相当于文件是同步的;原理

2021-09-14 12:11:28 134

原创 数据结构--括号问题汇总

1.有效的括号leetcode 20考虑到有效匹配的问题,可以采用栈的方法,每次匹配上一个栈顶的字符,不符合就返回,将左括号放入栈中,用右括号去匹配,思路如下:class Solution {public: char returnWord(char c){ char res = '0'; switch(c){ case ')': res = '('; break;

2021-09-13 12:51:22 502

原创 OSI七层模型概述

#OSI七层模型1.应用层:服务器和客户端的通信规范,可以发送哪些响应,哪些请求,顺序,交互过程,出现的意外状态代码的表示与处理,报文的格式。2.表示层:代码转换、字符转换、数据结构操作的适应,数据压缩加密,发送端和接收端必须使用相同的编码方式,否则会出现乱码,例如字符数字使用ASCII码,图片使用二进制的编码方式3.会话层:身份验证状态的保持和连接,允许不用机器上的用户之间建立会话关系,例如在windows上可以建立一个共享文件夹,并将其设置为指定用户的共享权限,我们就可以在另一台用户的cmd输入\

2021-09-12 20:09:03 211

空空如也

空空如也

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

TA关注的人

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