自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 错误C2662 常量函数const

错误 C2662 “int Vector<int>::size(void)”: 不能将“this”指针从“const Vector<int>”转换为“Vector<int>& ”问题:用常量对象调用非常量成员函数知识点:常量函数:用const修饰,表明在该函数内部,this指针中包含的成员变量无法更改数值,this调用的函数必须是const修饰的常量函数。...

2020-06-06 10:55:55 340

原创 C++ 扫雷,排雷小游戏

界面:游戏思想:扫雷游戏: 1.随机给定雷点坐标 2.判断每个点的雷情况 3.由用户根据上下左右键到达指定位置,点击enter,翻开该点 如果该点是雷点,此时翻开所有雷点,告知游戏结束 非雷点,翻开该点坐标代码:#include<iostream>#include<vector>#include<sstream>#include<algorithm>#include<...

2020-05-17 15:43:56 496

原创 public、private、protected

类的权限: 类的权限高低:public>protected>private 权限理解:基类中:public 类中(√) 类外(√) 基类中:protected/private 类中(√) 类外(×) 派生类中: public继承:public:类中(√) 类外(√) protected 类中(√) 类外(×) private:基类中的private在派生类中被隐藏了...

2020-05-13 12:02:10 221

原创 private下的静态成员

private下的静态成员变量: 实际上在非继承状态下,private与protected所展示的效果一样。Private下的静态成员函数: 实际上在非继承状态下,private与protected所展示的效果一样。总结:静态成员函数依旧受private权限控制。 理解:从一个角度而言:静态成员不属于该类,因此它本不应该被类的权限所控制;从另一个角度:将该类当做一个“命名空间”,静态成员属于该命名空间的全局变量/函数,这个“命名空间中...

2020-05-13 10:47:22 599

原创 NULL与nullptr

2020-05-12 16:27:20 153

原创 HTML常见标签

HTML标准结构:成对出现的标签-->有标签体的标签<html> <head>-->头标签 <title> 窗口标题标签</title> <meta charset="utf-8">指定当前HTML页面的编码格式 </head> &l...

2020-01-11 01:16:39 199

原创 tcp为什么可靠?

TCP是一种面向连接,可靠,基于字节流的传输层协议,这是我们最常用来描述TCP的语言,今天我们在这里探讨TCP为什么可靠呢?1.TCP是面向连接的,什么是面向链接呢?通俗易懂就是小红和小明打电话,电话是通的,双方都在线,都是具备对方给一个讯号,自己可以回答的能力,具有知道自己和对方的放松和接收是没有问题的确认能力,这就一定程度上保证了TCP较UDP可靠。不妨我们反过来想,如果小红给小明打电话,...

2019-09-14 12:34:21 886

转载 TCP的流量控制,拥塞控制

一:流量控制什么是流量控制?流量控制的目的?如果发送者发送数据过快,接收者来不及接收,那么就会有分组丢失。为了避免分组丢失,控制发送者的发送速度,使得接收者来得及接收,这就是流量控制。流量控制根本目的是防止分组丢失,它是构成TCP可靠性的一方面。如何实现流量控制?由滑动窗口协议(连续ARQ协议)实现。滑动窗口协议既保证了分组无差错、有序接收,也实现了流量控制。主要的方式就是接收方返...

2019-09-14 11:35:03 138

原创 多线程版本的网络套接字编程

哈喽!今天讲的主题利用tcp是网络套接字编程,简易服务器与客户端之间的通信:首先我们了解联想一下我们聊QQ的场景,此时假若小红和小明在聊天,这个过程是什么呢?小红在QQ聊天框写下自己说的话,此时QQ客户端程序将小红说的话发送给QQ服务器(此时牵扯到信息的发送流程,牵扯到的网络知识,暂时不做讨论),QQ服务器接收到消息,查看消息的头部信息,知道想要发送给谁,此时QQ服务器将消息发送给小...

2019-06-30 14:12:43 346

原创 网络套接字编程 服务端-客户端(前面是代码,最后是运行结果)

本文是多进程编程,多线程请看(https://blog.csdn.net/xinger_28/article/details/94310088),在多线程编程一节详细介绍了网络套接字的编程流程。//tcpsocket.h文件#include<stdio.h>#include<stdlib.h>#include<error.h>#include&lt...

2019-06-29 22:27:39 232

原创 Java 数组

数组1.数组类型: 保存一组其他类型的数据,元素类型(Element type) int[] double[] int[] intArray 和C语言兼容的方式: int intArray[]... 规则允许,规范不建议使用2.数组的初始化(数组的长度固定) 1>静态的方式 用到已知数...

2019-06-29 21:30:22 102

原创 JAVA 字面量 运算符 结构

字面量(Literal)int a=10; 10就是字面量 1.整形字面量 100;(int) 可以被byte(存储范围) short(存储范围) long 100L ,100l; (long) 不能够从long到int short 无论是否存的下 ...

2019-06-27 21:40:16 317

原创 Java 命名规则

命名变量名(包括类名,方法名)一些规则(不遵守会报错) 1.必须以 字母 或者下划线_ 或者美元$ 开头 2.首字母之后的部分可以是字母,下划线,美元符以及数字 3.变量名的长度是可以无限长的 4.变量名不可以和Java的关键字冲突 5.大小写敏感的命名规范: 1.永远不要用美元符和下划线命名(下划线有个特列) 2.永远使...

2019-06-26 21:49:20 81

原创 循环队列---顺序队列

在前两篇中讲述了顺序队列中的队头移动与不移动两种顺序队列,今天讨论顺序队列中的循环队列,这种循环队列是用一维数组实现的。在队头移动的情况下,根据元素个数与队列容量之间的数量关系来解决假溢出问题。从上图中我们可以理解为什么这种队列结构可以解决假溢出问题,但是随之而来,我们要如何判定循环队列已满呢?在此处我有三种办法:其一,牺牲一个存储单元,使得一旦插入时发现元素个数已经达到最大元素个...

2019-01-28 19:18:15 618

原创 顺序队列-------队头移动

队列概念:队列允许在队尾插入,队头删除,具有先进先出的特性。上一篇讲述了顺序队列中的队头不动,现在讲述队头移动的队列。如上图所示,这是队头移动的,意味着这个顺序队列进行删除时,队头指向会越来越靠后,队头指向之前将会是空,意味着最终将会导致看似队列已满,实则有多余空间,但是已经无法入队。如下图所示顺序队列之队头移动优点:解决了数据搬移的耗时问题缺点:会造成假溢出现象。...

2019-01-27 19:42:18 1297

原创 顺序队列--------队头不动

队列概念:只允许在队尾进行插入操作,在队头进行删除操作,具有先进先出的特性。队列分为顺序队列以及链表队列,顺序队列分为队头不动与队头移动量种。今天一篇讨论队头不动的顺序队列。在图中我们可以看出队头front始终指向0,rear始终指向实际大小的位置,因此在进行队尾插入时较为容易,但在队头删除时需要进行搬移数据,耗费时间。由于队头始终指向0,因此不会出现假溢出现象。 因此,这...

2019-01-27 19:25:42 663

原创 1+2+...+N

求1+2+...+N的和两种算法:1.循环算法:用一个变量sum记录和,一个变量i记录此时加数的大小,是否达到N,若没有,继续加,若N==i,返回2.递归算法:即数为N+(N-1)+...+2+1,判断N的大小,若N&lt;2,返回1在进行检验时,因为输入数据的局限性,因此 我利用随机数进行检验,检验的方法为,用循环算法得出的结果减去递归算法得出的结论,最后看结果是否为0,为0表示...

2019-01-23 19:17:43 792 1

原创 N的阶乘

求N的阶乘有好些中方法,在此处,我用两种方法进行计算,并且进行检验。求N的阶乘:!N=N*(N-1)*(N-2)*...*2*1在求N的阶乘就意味着求N* (N-1)的阶乘,依次类推,因此:1.用循环算法时,需要控制N的最大限度,用1*2*3*...*N2.用递归算法时,需要控制递归不再进行的条件,即N的最小限度为1,因此条件不再继续为N&lt;2时,返回1在进行检验时,因为输...

2019-01-23 19:10:33 3728

原创 迷宫

迷宫要求:给定入口,找出出口,并且打印出路径。 如这样的一个矩阵,1表示此路可以走,0表示此路不可以走,给定起始位置,即入口,通过对每一个方向的搜索,确定下一步的位置,一直循环,直到找到出口。                 用一个简单的类将栈进行封装。栈中成员变量有x,y的坐标,和size栈中元素的个数(其实可以不需要,但是为了方便下标的确定,在此我写上。)栈中成员函...

2019-01-23 18:56:45 347

原创 申请空间 new、delete

new/delete 出现的背景:        在C语言中,我们申请空间用malloc,calloc,realloc,释放空间为free,在这样的空间申请后,我们需要对申请空间的状态,进行判断,判断是否申请成功,并且需要对没有申请成功的变量进行处理,在这样的情况下,人们难免可能会忘记判断,导致程序出现异常。new/delete 实现的原理:  new、delete ,new[] ,d...

2018-11-27 14:53:25 1544

原创 简易的 一个 Date类(日期类)

 Date 日期类Date类需要包括三个成员变量,年,月,日,注意年月日皆应该使用整形。对日期 类,需要判断是否为闰年,因此决定2月的天数,并且要使用重载运算符相关的知识用来解决对日期类对象的输入与输出。bool operator==(const Date&amp; d); //== bool operator!=(const Date&amp; d); //!= bool ope...

2018-11-18 23:23:55 332

原创 C语言中的结构体,C++的类初步认识

C语言是一种最为基础的语言,它是C++的基础。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。C语言是一种面向过程的语言。注重对一件事情的解决过程,解决步骤,就例如是一个新生婴儿,刚刚进入世界时,什么技能都没有,只有在后天的影响下才能拥有走、跑、跳、语言等等技能,通过这些技能进行改变人的一些东西。而C++是一种基于...

2018-11-18 19:01:00 201

原创 学习语言之旅-----小白的一些学习心得

不知不觉自己开通CSDN已经半年多了,看了自己的写博客的时间,发现在前半年的博客生涯中,基本上一月一次,而在10月份开后,一周两三篇,就现在感受而言,这是完全不同的。博客十分重要。 在起初写博客时,是一种任务式的,感觉自己一个月务必写一篇,一个月就学习几个知识点,写在博客上就一两个知识点,这样就使自己的一些薄弱点没有暴露出来,在后来,自己尽量将所学的所见的写出来,这样是一种完全不同的感受,...

2018-11-18 10:45:01 140

原创 Linux中管道

1.管道 1.1 匿名管道: 实现背景:        因为创建缓冲区没有任何标记,操作系统只是返回了文件描述符供进程操作,对于其他进程而言,就访问不到这个进程,无法实现进程间通信: 实现原理:        (在创建管道后,创建进程,)通过子进程拷贝父进程的PCB来获取到相同的文件描述符,进而对相同的管道进行操作,实        现进程间通信        注:若是没有创建管...

2018-11-17 22:36:12 399

原创 C++,函数重载

背景:C语言中没有函数重载。在大型软件工程中,几个功能相同的函数,容易出现相同名称的函数,出现函数重定义,为了避免这种问题,因此,给函数起符合函数功能的不同名字 便成了 程序猿 的 一大难题,在此 背景下,便出现了 函数重载。      小小问题:“小心地滑”  从字面上 理解 ,有 几重 意思?概念:函数重载: C++允许在 同一作用域中 声明 几个同名函数,但这些同名函数的参数...

2018-11-09 17:31:27 72

原创 C++语言,缺省参数

背景:C语言中不支持缺省参数。有时用户忘传参,则程序将会报错,因此我们可以设置一个“默认值”或者说最合适的值,当用户忘传参数时,依旧可以将程序进行下去。概念:缺省参数是声明或 定义函数 时为 函数的参数 指定一个 默认值。在调用该函数是,如果没有指定 实参 则采用 该 默认值, 否则使用指定的 实参。分类:(1) 全缺省参数:在函数 参数列表定义时,将所有变量都初始化。...

2018-11-09 16:19:49 914

原创 C++语言,命名空间,namespace关键字

命名空间,简而言之,这是一个“空间”。出现背景:因为在C语言中定义了三个层次的作用域:文件作用域、函数作用域和复合语句。但是在大型的软件工程中,一个项目由多个人完成,有多个文本文件,就很有可能出现 同名 变量、函数,在进行调用时,编译器不知道该调用哪一个函数,或者使用哪一个变量的值,因此在编译过程中很可能发生多重定义,或者发现结果出现问题。定义:定义命名空间,需要使用到 names...

2018-11-09 15:10:53 1538

原创 C语言 字节对齐

你是否有观察过结构体中数据变量所占的字节数,以及结构体所占的字节数?如:                           图1                                               图2                                           图三你是否知道图1,2,3中结构体所占的字节数么?在此之前,我们需...

2018-11-03 22:46:38 120

原创 一维数组及其二维数组的表示

数组:存储相同数据类型的集合一维数组:是指由相同数据类型的数据 经过 在同一方向 有序排列,一维数组 结构单一,但却是二维数组、多维数组的集合二维数组:一维数组的叠加,将一维数组看做是一个 “数据”,则将多个数据 依照一位数组 在 另一方向上有序排列。n维数组:(n-1)维数组的叠加,叠加方式参照 二维数组 由 一维数组 叠加。注:(1)数据从 低地址 向 高地址 移动, 即 ...

2018-11-03 12:12:49 2401

原创 C语言判断大小端

思路:明确大小端:(1)小端:底地址存数据的低位,高地址存数据的高位,用“小小小”概括(小端,小地址,小数据)(2)大端:底地址存数据的高位,高地址存数据的低位如图示:程序思路:(1)思考数据的存储方式以及地址排列,int型 在32 位操作系统下 占有 4字节,              char 型 占有1字符,因此可以利用char 型指针判断 int 型地址与数...

2018-11-02 18:50:37 1443

原创 给定一个 32 位有符号整数,将整数中的数字进行反转。

示例:例如:给定数“456”,需返回“654”,给定“-876”,则需返回“-678”注意:假设我们的环境只能存储 32 位有符号整数,其数值范围是 [−231,  231 − 1]。根据这个假设,如果反转后的整数溢出,则返回 0。解答:  看到题意,我们知道:(1)注意 X 的 正负 ,(若为 负数 ,为了防止做除法时(向下取整),取其绝对值 ,)用一个数 记录 X的状态...

2018-11-02 17:25:43 3273

原创 出栈,入栈的合法性检验

元素出栈、入栈的合法性检验:方法步骤:1)入栈顺序用数组aa存储,出栈顺序用数组bb存储2)检验*aa==*bb是否满足,若满足,aa++,bb++;{否则,检验栈顶元素与*bb是否相等,若相等,出栈,bb++;否则,入栈},3)一直循环2),直到数组aa和数组bb全部走完,结束(栈中元素也要出完!) 头文件:栈.h#pragma once#include&lt;st...

2018-10-07 23:00:15 346

原创 C语言 ,单链表实现队列(初始化,入队,出队,元素个数,队首元素,是否为空)

单链表实现队列:链表为空的判断条件:pQueue-&gt;pFront==pQueue-&gt;pRear或者若结构体中存在数的个数时,判断pQueue-&gt;size==0,即元素个数为0头文件:队列.h#pragma once#include&lt;stdio.h&gt;#include&lt;stdlib.h&gt;//利用单链表实现队列//函数接口 :type...

2018-10-07 15:32:50 1868

原创 C语言,压栈,出栈,返回栈顶元素,栈的个数等等栈的一系列操作

头文件:栈.h#pragma once#include&lt;stdio.h&gt;#include&lt;stdlib.h&gt;#include&lt;Windows.h&gt;//函数接口:typedef int SDataType;typedef struct Stack {    SDataType array[100];    int top;} Stack...

2018-10-07 11:30:23 4164

原创 一个简单的英语到汉语的翻译过程(搜索二叉树)

英语到汉语的翻译:原理:在我看来,既可以运用数组,也可以运用搜索二叉树,或者是其它任意一种存储结构应该都可以完成这个操作,但应用搜索二叉树,效率会更高,因为每一次搜索,就会排除许多无用的数据。    例如,在上图中查找1,只需要通过上图的3次比较就可以得出结果,每一次排除了多种无效数据。方法步骤:1)应用到搜索二叉树的每个节点,节点信息包括英文,汉语,左孩子,右孩子。2)建...

2018-10-07 10:42:57 754

原创 搜索二叉树的创建,插入,查找,删除

二叉搜索树,顾名思义,主要作用为搜索,确定该树中是否存在要搜索的数据。基于找到该数据衍生除了对搜索二叉树的一系列操作,比如插入新数据,删除旧数据等等。搜索二叉树的性质(设节点为Root)1)root的左孩子的值永远小于root的值2)root的右孩子的值永远大于root的值3)root的左右子树依旧遵循此性质特点:搜索二叉树不允许一棵树中出现两个相同的数据,(个人看来,为了减少...

2018-10-05 11:30:18 943

原创 搜索二叉树的创建

二叉搜索树的性质:1)若它的左子树不为空,则左子树上所有节点都小于根节点的值。2)若它的右子树不为空,则右子树上所有节点都大于根节点的值。3)它的左右子树也分别为二叉搜索树。二叉搜索树如下图:二叉搜索树的创建过程:先找到需要插入值得父节点,比较父节点与插入值得大小,确定插入的位置。(找父节点,需要通过根节点与插入值得大小进行比较,确定根节点的左右孩子位置,继续循环,...

2018-10-04 23:30:05 7522

原创 堆的插入与删除

在上一篇博客中,我详细探讨了堆的创建与调整,这一篇基于上一篇(https://blog.csdn.net/xinger_28/article/details/82926744)的基础上讨论堆的插入与删除。首先声明此堆为小堆。小堆与大堆代码相似,原理相似小堆的插入:在已经建成的最小堆的后面插入要插入的新元素,插入之后,当节点不满足小堆的性质时,对对重新进行向下调整。(关于为何用新元素插入...

2018-10-02 17:57:25 186

原创 用一组数建立小堆(堆的创建)

(二叉)堆的概念:如果有一组数,数的集合K={K0,K1,.....Kn-1},把它的所有元素按照完全二叉树的顺序存储方式存储在一个一维数组中,并且有Ki&lt;=2*Ki+1,Ki&lt;=2*Ki+2,(或者Ki&gt;=2*Ki+1,Ki&gt;=2*Ki+2),称为小(大)堆。如上图所示:小(大)堆中,任一关键码均小于(大于)等于它的左右孩子的关键码,位于堆顶顶点的关键码最...

2018-10-02 16:45:17 8387

原创 在Linux环境下写彩色进度条的程序

编码要求:1. 进度条是动态的。2.进度条有进度的多少。3.进度条拥有颜色。前提:1. 缓冲区:缓冲区分为三种:1)全缓冲区:Linux下默认8192字节,在缓冲区满或者显示调用刷新函数后进行IO系统调用操作。普通磁盘文件通常使用全缓冲区访问2)行缓冲区:默认大小为128字节,当遇到换行符或者缓冲区满时,标准IO库执行IO系统调用操作,终端即行缓冲区。3)非缓冲...

2018-09-25 19:09:26 91

空空如也

空空如也

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

TA关注的人

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