自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(71)
  • 资源 (11)
  • 问答 (1)
  • 收藏
  • 关注

原创 c++ 函数指针

函数指针介绍函数指针指向的是函数而非对象, 函数的类型由它的返回类型和形参类型共同决定。int func(int, int); // 函数声明int (*pf)(int, int); // pf是一个函数指针,但是未初始化pf = func; // 对pf进行初始化int res = pf(2, 3); // 像调用函数一...

2018-08-19 11:37:02 1164

原创 c++ 内联函数和constexper函数

内联函数将函数声明内联函数, 通常是在编译器, 将它在调用点将函数“内联展开”。inline int len(const string& str){ return str.size();}constexpr函数constexpr 函数是指用常量表达式的函数。遵循如下两天规则:函数返回值类型和所有形参都是字面值类型函数体只能有一条retur...

2018-08-19 00:28:53 1971

原创 c++ 函数的返回值

函数返回值不要返回局部对象的引用或者指针引用返回左值,其他返回类型得到右值main函数返回值中,0表示成功,其他表示识别。列表初始化返回值c++ 11新标准规定, 函数可以返回花括号包围的值列表。其实,就是使用列表初始化的方式对表示函数返回的临时变量进行初始化。vector<string> process(){ return {"funca",...

2018-08-18 23:52:48 7524

原创 c++ 函数参数传递

指针形参当函数使用指针作为形参时, 本质也是使用传值参数, 只是传递的是变量的地址,所以可以通过指针修改它所指的对象的值, 但是在c++ 中推荐使用引用类型的形参替代指针。传引用参数使用引用传参可以避免拷贝操作, 提搞程序的效率。 尤其是拷贝大的类类型或者容器对象比较低效,或者有的类类型就不支持拷贝操作。引用形参也为我们一次返回多个结果提供了途径。const形参和实参...

2018-08-18 13:29:25 1057

原创 c++ 异常处理

try语句块和异常处理c++中,异常处理包括:throw 表达式,异常检测部分使用throw表达式来表示它遇到了无法处理的问题。try语句块。异常处理部分使用try语句块处理异常。 try语句块以关键字try开始, 并以一个或多个catch子句结束。try语句块中代码抛出异常通常会被某个catch子句处理。一套异常类,用于throw表达式和相关的catch子句之间传递异常具体信息...

2018-08-15 00:02:07 642

原创 c++ 类型转换

算术转换整型提升负责把小的整数类型转换为较大的整数类型。bool、char、sign char、unsigned char、short和unsigned short,如果他们所有可能的值都在int中,那么它们会被提升为int, 否则提升为unsigned int类型。无符号类型的运算对象 1. 如果无符号数类型不小于带符号数, 则带符号数转换为无符号数 2...

2018-08-14 00:24:39 404

原创 c++之处理类型

类型别名定义类型别名有两只方法,分别是:使用关键字:typedef (传统方法)使用关键字:using (新标准)typedef char* pstring;const pstring cstr = 0; // cstr 是指向char的常量指针(**const被识别为顶层const**)auto类型说明符c++ 11 新标准引入了auto类型说明符,...

2018-08-11 11:56:11 422

原创 折半查找

思路在有序队列中,将查找的关键字和查找范围内的中间元素进行比较,会出现如下三种情况: 1. 关键字和该中间元素相等,则查找成功。 2. 如果关键字比该中间元素大,则将整个查找范围的后半部分作为新的查找范围,重新进行折半查找算法。 3. 如果关键字比该中间元素小,则将整个查找范围的前半部分作为新的查找范围,重新进行折半查找算法。 4. 中间元素不等于关键字且查找范围小于等于1,则说明查找失败。

2017-09-19 14:55:34 3717

原创 c++实现2^512的计算

题目请实现程序计算:2^N的值,其中512<=N<=1024。思路这个其实就是大数值的计算,在大一的上计算机导论的时候,老师就叫我们可以尝试用数组实现大数值的乘法,所以这道题同样时采用数组实现,需要注意的问题就是进位。代码实现#include <iostream>#include <cstring>using namespace std;#define size 3500 ///至少可以计

2017-09-19 00:04:20 1905

原创 nginx+rtmp直播流服务器搭建

nginx的服务器的搭建必要文件的下载连接 nginx-1.8.1 nginx-rtmp-module安装nginx的依赖库sudo apt-get updatesudo apt-get install libpcre3 libpcre3-devsudo apt-get install openssl libssl-dev配置并编译nginx 使用nginx的默认配置,添加nginx的r

2017-07-12 17:12:14 5921 1

原创 选择排序(包含堆排序)

思路每一趟都从n-i+1(i=1,2,3….n-1)个记录中选择出最小的关键字,作为有序序列的第i个元素。常用的选择排序简单选择排序堆排序简单选择排序思路 (参考:选择排序)数组A,长度为:n,临时变量:i,初始化为1 - 从A[i]~A[n]这n-i+1个元素中,找出最小的关键字,并且记录其下标 - 如果该关键字不是A[i]~A[n]这个序列的第一个元素,则将该两个位置的元素替换 -

2017-05-05 19:34:12 1110

原创 TCP滑动窗口协议

理解滑动窗口,先了解下面四个小知识TCP使用两个缓存和两个窗口控制字节流的传输过程。发送方有一个发送缓存,用了存储进程准备发送的数据。接收方有一个接收缓存,用来存储接收成功的数据,等待接收方应用程序读取。接收方通过接收缓存的空余空间,计算出接收窗口的大小,并且会通过应答报文告知发送方。发送方也有一个发送窗口,只要这个窗口不为0,发送方就可以发送数据。TCP不可能为对每个字节都进行确认,而是采用累

2017-05-05 19:33:49 3293 1

原创 TCP四次挥手

TCP的连接的断开上次我们介绍了TCP的连接的建立需要经历“三次握手”。今天需要介绍的主题是TCP连接的断开,这个是比较复杂的一个事情,它需要经历我们常说的“四次挥手”。客户端进程和服务端进程都可以主动提出释放连接,在socket编程中,就是一方简单的调用close方法。TCP四次握手图示TCp四次握手详细介绍(假设客户端首先提出释放连接)客户端A发送一个“FIN”报文段给服务器B,其中该报文中的

2017-05-05 19:33:24 806

原创 TCP可靠的数据传输

TCP如何提供可靠的数据传输(参考资料:TCP如何提供可靠传输)TCP的连接的建立是TCP进行可靠的数据传输的基础。后续在建立连接基础上,TCP又提供了如下技术保障数据的可靠的传输TCP根据MSS等数据,把需要传输的数据分割成TCP认为最合适的大小发送。TCP在交付了其报文给网络层后,将启动一个重传定时器,如果在该TCP报文的确认报文不能及时到达,将会启动重传。(差错控制,确认重传)当TCP数

2017-05-05 19:32:47 1120

原创 TCP报文段结构

TCP协议的特点TCP是可靠的、面向连接、面向字节流、支持双工(客户端和服务器端可以互相传输数据)、支持并发连接、提供确认重传与拥塞控制的传输层协议。添加补充知识:UDP是一种无连接、不可靠、简单高效的一种面向报文传输的传输层协议。TCP的报文段结构TCP的报文段结构由报文首部和数据组成。其中报文段的首部的长度为:20字节~60字节。如下图所示,为TCP报文段的结构的展示图: 下面我们,一一介绍

2017-05-02 19:36:31 3290

原创 TCP三次握手

为什么TCP需要建立连接其实很好理解这个问题,我们要发送东西给人家,那么肯定要先给人家打好招呼,这样对方才可以在收到东西之后给你反馈啊。如何建立TCP连接TCP连接需要经过“三次握手”的过程,我们先给出这个过程的示意图,如下图所示: 第一步:客户端A中的一个TCP进程要与服务器B中的一个TCP进程建立连接,首先是A中的TCP进程向B中的TCP进程发送特殊的TCP报文段(标志位SYN被置1,因此该报文

2017-05-02 19:36:13 667

原创 编译期多态和运行期多态

什么是多态所谓的多态是通过一个单一的标识符支持不同的特定行为的能力。多态的分类从绑定时间静态多态 (编译期多态)动态多态 (运行期多态)从表现的形式虚函数重载模板 转换 (宏定义)今天我们就只讨论从绑定时间来分的多态种类,即编译期多态和运行期多态。运行期多态运行期多态可以说只要学了c++的人都是知道的。因为运行期多态就是我通俗所说的多态,它的提出可以归结于类继承的思想的提出。对于相关

2017-05-02 19:35:39 3410

原创 SMTP协议介绍

1、SMTP介绍基本概念SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件 的规则,由它来控制信件的中转方式。SMTP协议属于TCP/IP协议簇,它帮助每台计算机在发送或中转信件 时找到下一个目的地。通过SMTP协议所指定的服务器,就可以把E-mail寄到收信人的服务器上了,整个过程 只要几分钟。SMTP服务器则

2017-04-03 17:13:46 104549 4

原创 电子邮件系统的介绍

1、前言电子邮件系统的组成:用户接口用户接口是本地运行的程序,又称用户代理(UA),主要是撰写、显示、处理邮件。UA的任务是创建和显示报文,并且在UA和本地的MAT之间传递报文邮件传输程序这个部分又称报文传送代理(MTA),它将邮件通过网络发送给对方主机,并从网络接收邮件。它包括如下两个功能: 1. 传送和接收:电子邮件按照c/s方式工作。用户编写好邮件,通过UA将邮件交给MTA。发送邮件时

2017-04-03 16:27:38 7446

原创 HTTP协议详解

1、前言HTTP协议是用于web服务上一个应用层协议。web是一个大规模的提供海量信息存储和交互式超媒体信息服务的分布式应用系统。而这个分布式系统是有一个一个的web文档组成的,这些web文档都有一个唯一标识自己的链接地址,我又称之为资源定位符(Uniform Resource Locator,URL)。要使web文档在Internet上传送,客户和服务器之间的交换遵循HTTP协议,它是基于传输层的

2017-04-03 11:02:43 773

原创 应用层协议

1、应用层协议的类型标准的网络应用的协议,例如:E-mail、FTP、TELNET、Web等,它们都是以RFC文档的方式公布出来,提供给网络应用系统开发者使用。应用层协议专用的,目前很多P2P文件共享的应用层协议都属于专用协议2、应用层协议的基本内容应用层协议定义了运行在不同端系统上应用程序进程交换的报文格式和交互过程。 主要内容为: 1. 交换报文的类型,如请求报文和应答报文 2.

2017-04-02 15:38:38 2604

原创 TCP/IP协议族分层详解

1、TCP/IP的介绍互联网协议族(Internet Protocol Suite,缩写IPS)是一个网络通信模型,以及一整个网络传输协议家族, 为互联网的基础通信架构。它常被通称为TCP/IP协议族(TCP/IP Protocol Suite,或TCP/IP Protocols), 简称TCP/IP。TCP/IP提供点对点的链接机制,将数据应该如何封装、定址、传输、路由以及在目的地如何接收,都

2017-04-02 10:41:52 49843 7

原创 哈希表查找代码实现

前言博客编写人:Willam博客编写时间:2017/3/29博主邮箱:[email protected](有志同道合之人,可以加qq交流交流编程心得)1、代码实现的介绍下面我将会实现哈希表的查找代码: 其中我会采取的散列构造函数为最常用的构造函数:除留取余数法 而解决冲突的方法采用以下三种,分别实现:线性探测二次探测链地址法如果需要了解哈希表的详细介绍,可参考博客:哈希表的详解2、线

2017-03-29 23:13:29 8470 2

原创 哈希表(散列表)查找的详解

前言博客编写人:Willam博客编写时间:2017/3/29博主邮箱:[email protected](有志同道合之人,可以加qq交流交流编程心得)1、哈希表查找介绍我之前介绍两种方向的查找算法:静态查找算法(折半查找、插值查找、斐波那契查找、分块查找)动态查找算法(二叉排序树、平衡二叉树、B-树、B+树)但是,这些查找算法都是通过从表头开始,挨个挨个的比较记录,才得到我们需要查找的关键

2017-03-29 11:48:37 7633

原创 B+树的简单介绍

前言博客编写人:Willam博客编写时间:2017/3/28博主邮箱:[email protected](有志同道合之人,可以加qq交流交流编程心得)1、B+树的介绍B+树是B-树的变体,也是一种多路搜索树: 其定义基本与B-树同,除了:有n颗子树的结点中含有n个关键字所有的叶子结点中包含了全部关键字的信息,以及指向包含这些关键字记录的指针,且叶子结点本身依关键字的大小自小而大顺序链接所

2017-03-28 22:11:15 8951

原创 B-树的详解

前言博客编写人:Willam博客编写时间:2017/3/27博主邮箱:[email protected](有志同道合之人,可以加qq交流交流编程心得)1、背景知识下面这段摘抄自博客:(从B 树、B+ 树、B* 树谈到R 树) 动态查找树主要有:二叉查找树(Binary Search Tree),平衡二叉查找树(Balanced Binary Search Tree),红黑树(Red-Black

2017-03-28 19:44:16 42819 17

原创 二叉排序树详解

前言博客编写人:Willam博客编写时间:2017/3/25博主邮箱:[email protected](有志同道合之人,可以加qq交流交流编程心得)1、二叉排序树的介绍二叉排序树又称二叉查找树。二叉排序树有如下性质:如果它的左子树不为空,那么左子树上的所有结点的值均小于它的根结点的值如果它的右子树不为空,那么右子树上的左右结点的值均大于它的根结点的值根结点的左子树和右子树又是二叉排序树。

2017-03-26 11:49:50 30782 2

原创 索引顺序表查找算法(分块查找算法)

算法背景有时候,可能会遇到这样的表:整个表中的元素未必有序,但若划分为若干块后,每一块中的所有元素均小于(或大于)其后面块中的所有元素。我们称这种为分块有序。对于分块有序表的查找首先,我们需要先建立一个索引表,索引表中为每一块都设置–索引项,每一个索引项都包含两个内容:该块的起始地址该块中最大(或最小)的元素显然,索引表是按关键字递增或递减次序排列的。如下图所示: 查找过程在前面建立的索引表的基

2017-03-25 23:00:47 21958

原创 顺序容器---string详解

前言博客编写人:Willam博客编写时间:2017/3/21博主邮箱:[email protected](有志同道合之人,可以加qq交流交流编程心得)1、string的介绍string是以char作为模板参数的模板类实例,把字符串的内存管理责任由string负责而不是由编程者负责,大大减轻了C语言风格的字符串的麻烦。2、string的头文件#include<string>using std::

2017-03-25 10:57:53 1489

原创 顺序容器--vector的详解

前言博客编写人:Willam博客编写时间:2017/3/11博主邮箱:[email protected](有志同道合之人,可以加qq交流交流编程心得)1、vector介绍vector是一种顺序容器,所谓的容器就是一个保存一组类型相同的数据的集合。容器有顺序容器和关联容器之分,所谓的顺序容器指的是元素排列次序与元素的值无关,而是由元素添加到容器里的次序决定。vector有如下几个特点: - 支持

2017-03-21 20:50:44 9868

原创 c++虚函数详解

前言博客编写人:Willam博客编写时间:2017/3/21博主邮箱:[email protected](有志同道合之人,可以加qq交流交流编程心得)1、引入虚函数的目的在基类的派生类中就可以通过重写虚函数来实现对基类虚函数的覆盖。当基类的指针指向派生类的对象时,基类指针对虚函数的调用实际上是调用了派生类的虚函数。这是面向对象中多态性的体现。白话就是:为了实现类的多态,所谓的多态(多态就是:调

2017-03-21 17:05:47 1398

原创 最短路径问题---SPFA算法详解

前言博客编写人:Willam博客编写时间:2017/3/12博主邮箱:[email protected](有志同道合之人,可以加qq交流交流编程心得)1、最短路径问题介绍问题解释: 从图中的某个顶点出发到达另外一个顶点的所经过的边的权重和最小的一条路径,称为最短路径解决问题的算法:迪杰斯特拉算法(Dijkstra算法)弗洛伊德算法(Floyd算法)SPFA...

2017-03-12 15:14:35 64075 11

原创 访问vector元素方法的效率比较

相信会来看这篇博客的人,应该都认识vector了,所以我就直接上测试代码了,我是在vs2015中测试的:#include<iostream>#include<vector>#include<windows.h>using namespace std;int main() { //建立4个vector,使用列表初始化,相当与调用拷贝构造函数 vector<int> v1;

2017-03-11 22:44:43 8591 1

原创 最短路径问题---Floyd算法详解

前言 Genius only means hard-working all one’s life. Name:Willam Time:2017/3/81、最短路径问题介绍问题解释: 从图中的某个顶点出发到达另外一个顶点的所经过的边的权重和最小的一条路径,称为最短路径解决问题的算法:迪杰斯特拉算法(Dijkstra算法) 弗洛伊德算法(Floyd算法) SPFA算法 之前已经对Di

2017-03-11 17:01:37 294153 47

原创 最短路径问题---Dijkstra算法详解

前言 Nobody can go back and start a new beginning,but anyone can start today and make a new ending. Name:Willam Time:2017/3/81、最短路径问题介绍问题解释: 从图中的某个顶点出发到达另外一个顶点的所经过的边的权重和最小的一条路径,称为最短路径解决问题的算法:...

2017-03-08 16:42:46 820101 174

原创 数据结构----关键路径详解

前言 Live beautifully, dream passionately, love completely. Name:Willam Time:2017/3/71、AOE-网介绍我们在学习拓扑排序(如果没学,可以看看这篇博客:拓扑排序详解)的时候,已经接触了什么是AOV-网,AOV-网是优先考虑顶点的思路,而我们也同样可以优先考虑边,这个就是AOE-网的思路。若在带权的有向无环图中,以顶

2017-03-07 21:41:38 81952 11

原创 数据结构---拓扑排序详解

前言 The time of test,family is best. Name:Willam Time:2017/3/61、拓扑排序的介绍对一个有向无环图(Directed Acyclic Graph简称DAG)G进行拓扑排序,是将G中所有顶点排成一个线性序列,使得图中任意一对顶点u和v,若边(u,v)∈E(G),则u在线性序列中出现在v之前。 拓扑排序对应施工的流程图具有特别重要

2017-03-06 19:54:41 101496 13

原创 c++进阶---IO类详解(二)--文件流的详解

前言在上一篇博客,我们已经主要介绍了IO类是什么和对标准输入流cin做了比较详细的介绍,这篇博客我们就来开始学习另外一类IO类:ifstream 、oftream、fstream。我们称之为文件流,主要是对系统的文件进行一些读写之类的操作。下面我们就对文件流进行详细的讲述。1、流的分类总结ofstream :文件的写操作,主要是从内存写入存储设备(如磁盘),它是继承istream类ifstream

2017-03-05 21:21:21 4301 1

原创 数据结构--最小生成树详解

前言 A wise man changes his mind,a fool never. Name:Willam Time:2017/3/11、什么是最小生成树现在假设有一个很实际的问题:我们要在n个城市中建立一个通信网络,则连通这n个城市需要布置n-1一条通信线路,这个时候我们需要考虑如何在成本最低的情况下建立这个通信网? 于是我们就可以引入连通图来解决我们遇到的问题,n个城市就是图上的n

2017-03-03 19:23:28 191289 35

原创 数据结构----BFS和DFS详解

前言 The art of teaching is the art of assisting discovery. Name:Willam Time:2017/2/28这篇博客将会介绍两种遍历图的算法,一种是:DFS—-深度优先搜索,另外一种就是:BFS–广度优先搜索。1、DFS(Depth_First Search)算法思路: 从顶点V开始,访问这个顶点,然后依次从V的未被访问的邻接点出发

2017-02-28 19:38:52 25283 1

ffmpeg + x265 + x264

在ffmpeg 中加入x265和x264。通过这个你可以直接使用ffmpep进行x265的转码,我使用的系统是Ubuntu 16.10 ,

2017-09-24

数据结构-串的基本操作的实现

本资源是我在Linux下编写的有关数据结构串的基本操作的实现,你可以直接下载解压,查看具体的代码

2017-02-19

线性表-链式表示(修改后)

这是有关线性表的链表的实现

2016-11-17

sierpinski三角形--opengl实现

sierpinski三角形--OpengL实现

2016-11-16

线性表-顺序实现(2)

学习线性表的好资料

2016-11-15

线性表-链式表示和实现

本文档是有关使用c++,完成对线性表的链式存储实现的代码,包括了链表的插入、删除、查找、返回值等

2016-11-10

计算机经典面试题

这个文档是一些经典的算法面试题

2016-11-08

线性表-顺序实现

这个文档是关于线性表顺序实现的一个代码,里面包括了线性表的初始化、删除、添加、查找、两个线性表的连接等内容, 代码采用的是工程式开发。

2016-11-08

OpenGL完成对OFF文件的读取和使三维模型旋转

本代码是通过OpenGL实行对OFF文件的读取和对读取的三维模型添加旋转功能

2016-10-22

Josephus问题

有任何问题,请发邮件:[email protected]

2016-09-22

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

TA关注的人

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