自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 收藏
  • 关注

原创 二叉搜索树

二叉搜索树基本概念二叉搜索树又称二叉排序树,它或者是一棵空树,或者是具有以下性质的二叉树:若它的左子树不空,则左子树上所有节点的值均小于它的根节点的值;若它的右子树不空,则右子树上所有节点的值均大于它的根节点的值;它的左右子树也分别为二叉排序树。如下图所示二叉搜索树的查找若根节点 = 要查找的节点 返回true若根节点 < 要查找的节点 ,在右子树种查找若根节...

2019-07-26 14:10:57 357

原创 IO多路转接之select、poll、epoll简介及优缺点对比

IO多路转接IO多路转接也叫做IO多路复用,它是一种处理高并发的IO事件监控。它可以同时对大量的描述符进行监控,监控其是否具备了IO条件。就绪:包括了读就绪事件(就是有数据到来的时候),写就绪事件(缓冲区有空闲的空间),异常事件(发生异常)。对于服务器来说,很多时候我们都是监控的读事件,对于写事件和异常事件都只会在特定的情况下使用。IO多路转接之selectselect简介系统提供了se...

2019-07-25 15:17:28 561

原创 五种IO模型

五种IO模型以前,我看过别人针对五种IO模型举过一个很合适的例子,那么今天我将以生动的例子帮助大家更好的理解这五种IO模型。阻塞IO假如A在河边钓鱼的时候,非常的专心,生怕鱼儿溜掉,故此,A就一直盯着鱼竿,一直等着鱼儿上钩,专心的做这一件事情,直到鱼儿上钩,才结束这个动作,这就是阻塞IO。在内核把数据准备好之前,系统调用会一直处于阻塞状态。非阻塞IO假如B也在河边钓鱼,B不想像A一样把...

2019-07-25 12:56:34 288

原创 C++多态

C++多态多态概念字面意思,就是多种形态,具体点就是去完成某个行为,当不同的对象去完成时会产生出不同的状态。举个例子:假如你要去看电影,有的影院也许有这样的规定,如果你是成年人,那么就是全票,如果你是学生,那么就是半价票,如果你是一个小孩子,那么你就不需要票,免费。这就是很典型的一个例子,针对不同的对象,你去做这件事发生的结果是不一样的。多态的发生条件必须通过基类的指针或者引用调用虚函...

2019-07-24 16:42:58 290

原创 C++继承

C++继承继承概念继承(inheritance)机制是面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保持原有类特性的基础上进行扩展,增加功能,这样产生新的类,称派生类。继承呈现了面向对象程序设计的层次结构,体现了由简单到复杂的认知过程。以前我们接触的复用都是函数复用,而继承是类设计层次的复用。class Person{public: void Print() { co...

2019-07-24 14:26:25 211

原创 C++类型转换

C++类型转换C语言类型转换在c语言中,存在两种类型转换,一种是隐式类型转换,另一种是显示类型转换。如下所示。int a = 4;double b = a; //隐式类型转换int *ptr = &a;int address = (int) ptr;缺陷:C语言中的隐式类型转换看起来是很方便,但在有些时候也会给我们带来一些隐患问题。C语言中的强制类型转换太...

2019-07-24 13:07:37 486

原创 基于C++和SQLite自主开发的SuperDocumentRetriever

项目简介项目名称 : SuperDocumentRetriever(超级文档检索器)开发环境 : Visual Studio 2017项目描述 : 本项目是一款实用型小工具,可以根据输入的关键字快速的在         本地检索出相关信息项目特点 : 1. 使用 Sqlite 数据库        2.自主实现简易...

2019-07-22 13:43:30 1251 2

原创 C++ 异常处理

C语言处理错误的方式终止程序。assert ,这种方式比较粗暴,如发生内存错误,除0错误时就会终止程序返回错误码,缺陷:需要程序员自己去查找对应的错误。如系统的很多库的接口函数都是通过把错误码放到errno中,表示错误C 标准库中setjmp和longjmp组合。这个不是很常用,这个我也不是很了解。大家知道有这么个东西就行了。C++异常概念异常是一种处理错误的方式,当一个函数发现自己...

2019-07-20 23:10:21 254

原创 C++智能指针

导入我在学习C语言的时候,最让人头疼的便是指针,指针本身并不难,但是指针和内存挂钩就显得不那么容易理解。我们经常要利用 malloc 申请内存空间,但是一不留神就忘记释放内存空间,那么着就会造成内存泄漏,不容小觑。那么C++中我们该如何解决这个问题呢?RAII基本描述RAII(Resource Acquisition Is Initialization)是一种利用对象生命周期来控制程序资源...

2019-07-19 16:19:15 174

原创 MySQL表的内外连接以及视图

MySQL内连与外连内连接内连接实际上就是利用where子句对两种表形成的排列组合进行筛选语法select 字段 from 表1 inner join 表2 on 连接条件 and 其他条件;举个例子-- 用以前的写法select ename, dname from emp,dept where emp.deptno=dept.deptno and ename='MIKE';--...

2019-07-14 22:45:51 1175

原创 MySQL索引与事务

MySQL索引索引基本描述索引是用来提高数据库的性能的一种机制。不用加内存,不用改程序,不用调sql,只要执行正确的create index ,查询速度就可能提高成百上千倍。但是天下没有免费的午餐,查询速度的提高是以插入、更新、删除的速度为代价的,这些写操作,增加了大量的IO。所以它的价值,在于提高一个海量数据的检索速度。索引分类主键索引(primary key)唯一索引(unique...

2019-07-14 22:22:02 613

原创 MySQL增删改查基本使用(CRUD)

前言在前几篇,我介绍了关于MySQL的基本概念,那么本次就要开始介绍关于MySQL的最重要的部分,那就是关于表的操作。(CRUD- Create, Retrieve,Update,Drop)。建表例:创建一张学生表create table student( id int primary key, name varchar(20), sex varchar (2), addr var...

2019-07-14 19:05:46 285

原创 MySQL 数据类型及约束

MySQL数据类型数据类型分类MySQL支持多种类型,大致可以分为三类:数值、日期/时间和字符串(字符)类型。数值类型日期和时间类型字符串类型char与varcharchar(L): 固定长度字符串,L是可以存储的长度,单位为字符,最大长度值可以为255varchar(L): 可变长度字符串,L表示字符长度,最大长度65535个字节关于varchar(l...

2019-07-14 18:04:48 226

原创 MySQL库操作及表操作

MySQL库操作创建数据库创建一个名为 student1 的数据库create database student1;创建一个使用utf8字符集的 student2 数据库create database student2 charset=utf8;创建一个使用utf字符集,并带校对规则的 student3 数据库。create database student3 cha...

2019-07-14 09:19:34 201

原创 mysql数据库基础

数据库的基本介绍相关概念DBMS:数据库管理系统,就是数据库软件数据库:保持有组织的数据的容器(通常是一个文件和一组文件),不管数据是什么或如何组织的,是通过DBMS创建和操纵的容器。SQL:结构化查询语句,是专门用来与数据库沟通的语言,需要一个支持SQL语句执行的应用程序表:某种特定类型数据的结构化清单,存储在表中的数据是同一种类型的数据或清单主流数据库介绍Oracle: 甲...

2019-07-14 08:43:06 190

原创 UDP与TCP协议简介

前言本节起,我们主要介绍关于传输层相关的两个著名协议,即 UDP 与 TCP 协议,那么就让我们开始从传输层说起。传输层基本概念我们知道传输层位于网络层之上,网络层提供了主机之间的逻辑通道。那既然已经把一个数据包从一个主机发到另一个主机上面了,为什么还需要传输层呢?这是因为传输层提供了应用进程之间的端与端之间的数据传输功能。我们知道一个电脑可能有多个进程同时在使用网络连接,那么网络包达到主...

2019-07-11 00:11:21 519

原创 UDP/TCP常见面试题

为什么需要第三次握手?如果没有第三次握手,可能会出现如下情况:如果只有两次握手,那么server收到了client的SYN=1的请求连接数据包之后,便会分配资源并且向client发送一个确认位ACK回复数据包。那么,如果在client与server建立连接的过程中,由于网络不顺畅等原因造成的通信链路中存在着残留数据包,即client向server发送的请求建立连接的数据包由于数据链路的拥塞或...

2019-07-11 00:10:15 772

原创 HTTP协议简介

应用层基础概念应用层就是在应用程序之间进行数据交换,我们平时写的一个个应用程序解决一个个实际问题,满足日常需求的网络程序,都是在应用层。应用层常见协议HTTP协议——超文本传输协议FTP协议——文件传输协议SMTP协议——简单邮件传输协议DNS协议——域名解析协议应用层有好多协议,都是由我们程序员自己处理的,在这些协议中,我们最常用的就是HTTP协议,那么接下来就让我们一起来看...

2019-07-09 15:56:10 1203

空空如也

空空如也

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

TA关注的人

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