自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 tcp/ip详解卷一:协议 --- ICMP协议

1.ICMP协议ICMP:Internet控制报文协议,通常被认为是IP层的一个组成部分。传递差错报文以及其他需要注意的信息。ICMP报文通常被IP层或更高协议(TCP/UDP)使用。ICMP报文是在IP数据报内被传输的。ICMP报文格式如下所示:2. ICMP报文类型图中为各种类型的ICMP报文对应类型,不同类型由报文中的类型字段和代码字段共同决定。最后两列则显示此ICMP报文为查询报文还是差错报文,因为ICMP差错报文有时需要做特殊处理,因此我们需要对它们进行区分。当发送一份ICMP差错

2020-12-14 20:00:08 1272 1

原创 tcp/ip详解卷一:协议 --- ARP/RARP协议

1.ARP协议ARP协议(地址解析协议):为IP地址到对应的硬件地址之间提供动态映射关系。2.ARP高速缓存ARP高效运行的关键是由于每个主机上都有一个ARP高速缓存。这个缓存存放了最近Internet地址到硬件地址之间的映射记录,高速缓存中每一项的生存时间一般为20min,起始时间从创建时开始计算。3.ARP分组格式4.RARP协议RAPR(逆地址解析协议):通过硬件地址找到其对应IP地址。5.RARP分组格式RARP分组的格式和ARP基本一致,他们之间主要的差别时R.

2020-12-14 18:06:02 268

原创 tcp/ip详解卷一:协议 --- IP协议

1.IP协议:IP协议是TCP/IP协议簇中最核心的协议,所有TCP、UDP、ICMP及IGMP数据都以IP数据报格式传输,IP协议不可靠无连接。

2020-12-14 16:17:30 574

原创 tcp/ip详解卷一:协议 --- 链路层

1.链路层 链路层主要有三个目的: 1)为IP模块发送和接受IP数据报; 2)为ARP模块发送ARP请求和接受ARP应答; 3)为RARP协议发送RARP请求和接受RARP应答。TCP/IP支持多种不同的链路层协议,这取决于网络所使用的硬件。2.以太网和IEEE802介绍: 以太网是当今TCP/IP采用的主要局域网技术,采用CSMA/CD(Carrier Sense...

2020-12-14 14:59:45 441

原创 tcp/ip详解卷一:协议 --- 协议分层介绍

1.分层:网络协议通常分为不通层次进行开发,每一层分别负责不同的通信功能。如TCP/IP协议簇,是一组不同层次上的多个协议的组合。TCP/IP协议簇通常被认为是一个四层协议系统。如图所示:1)、链路层:也称数据链路层或网络接口层,通常包括操作系统中的设备驱动程序和计算机中对应的网络接口卡。它们一起处理与电缆(或其他任何传输媒介)的物理接口细节。2)、网络层:也称互联网层,处理分组在网络中的活动,例如分组的选路。在TCP/IP协议簇中,网络层协议包括IP协议(网络协议),ICMP协议(Int.

2020-12-12 13:32:57 1684

原创 C++关于多态的解析

众所周知C++是一种面向对象的语言,它相较于C语言还是主要它的封装、继承、多态;今天我们就来说说它的多态。多态是什么呢?说白了就是同一操作,用作不同对象,可以产生不同的效果。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比...

2019-08-29 17:21:50 165

原创 模板进阶

我们之前说过的函数模板,类模板和模板类,今天我们在这基础上来进行一下提升,我们来说说这几个问题:非类型模板参数类,模板的特化以及应用值类型萃取,还有就是模板的分离编译。我们先来说一下非类型模板参数: 模板参数分类类型形参与非类型形参。 类型形参即:出现在模板参数列表中,跟在class或者typename之类的参数类型名称。 非类型形参,就是用一个常量作为类(函数)模板的一个...

2019-05-23 18:12:04 195

原创 STL---关联式容器

关于C++的STL中的容器,之前我们已经说过了部分容器,比如:vector,list,forward_list......这些容器统称为序列式容器,其底层的都是线性序列的数据结构,里面存储的是元素本身。那么下面我们要说的是关联式容器,两者又有什么差距呢?关联式容器也是存储数据的,不过其中存储的是<key,value>结构的键值对,关联式容器在数据检索式比序列式容器的效率高。...

2019-05-12 10:31:13 297

原创 STL容器----list

先来介绍一下list:list也是STL的容器它的底层结构是双向链表,每个元素存在于互不相关的结点中。属于序列式容器,这在前面也提到过,与其他序列式容器(array,vector,deque)相比较,list通常在任意位置插入,移除元素的效率更高说到list就不得不提一下forward_list,不同的是forward_list底层结构是单链表当然list与forward_list...

2019-05-08 20:08:48 247

原创 STL容器---vector

先来介绍一下什么是vector:可变大小数组的容器;采用连续存储空间来储存元素,可采用下标访问(高效);使用动态分配数组来存储元素;与其他动态序列容器相比(deque,list and forward_list),vector访问元素时更加高效,在末尾添加和删除元素时更加高效。四种构造函数:vector(const Allocator& = Allocator()...

2019-04-23 18:46:46 178

原创 STL容器-----string

string:STL中字符串类型,通常用于表示字符串string和char*的区别:string不用考虑内存释放和越界的问题string类的字符串操作:const char & opeartor [](int n) const;const char & at (int n)const;-------------------------------------...

2019-04-20 17:32:59 161

原创 STL

STL(standard template library)-----标准模板库特点: 数据结构和算法分离,不面向对象,依赖模板优点: 高可重用性,高性能,高移植性,跨平台STL基于模板,内联函数的使用使得代码短小高效体现泛型化程序设计的思想STL六大组件: 容器 迭代器 算法 仿函数 迭代适配器 空间适配器容器分为...

2019-04-20 17:30:06 173

原创 C++继承(总结)

类的继承:解决代码的复用已存在的类称为“父类”或“基类”新建立的类称为“子类”或“派生类”一个类从已有的类中获取已有特性叫做类的继承从已有的类产生一个新的子类叫做类的派生一个派生类只从一个基类中派生,这称作单继承派生类是基类的具体化,基类是派生类的抽象化继承方式:公用继承(public)、私有继承(private)、受保护继承(protected),默认为私有继承公...

2019-03-23 08:39:56 272

原创 C语言--------关于迷宫问题的浅析

首先我们先来说说迷宫问题------迷宫可分为三种情况:简单迷宫、多出口的迷宫、循环迷宫可以分为这三种简单情况,第一种我们只需用利用栈来实现即可;就是将数据的坐标入栈,当探测上下左右都无路可走的时候,利用回溯来探测别的可走的路,我们可以将第一种和第二种归结为一种情况来看下面是代码的实现:#include"mig.h"//int CheckAccess(Pos next)/...

2019-01-25 16:44:51 303

原创 队列的浅析(C++)

队列和上篇提到的栈类似,本质上都是特殊的线性表,它是在一端(队头)进行删除操作,另一端(队尾)进行插入操作,遵守先进先出的规则。。既然队列也是线性表,当然也有两种数据存储方式:顺序存储结构:这种结构事先要基本确定队列的大小,不支持动态分配存储空间,所以插入和删除元素比较省时,但是会造成空间的浪费。                     为了节省空间,这里引入了循环队列,本质上也是顺序...

2019-01-21 11:06:37 208

原创 排序的总章-----概述

排序:快速排序、插入排序、选择排序、冒泡排序、堆排序、归并排序、希尔排序、二叉树排序、(非比较排序)计数排序、桶排序、基数排序比较排序的时间复杂度通常为o(n^2)或者o(nlogn)非比较排序的时间复杂度可以达到o(n),但是需要额外的空间开销排序的稳定性和复杂度:不稳定:选择排序--------O(n^2)快速排序--------平均O(nlogn)最坏O(n^2)堆排序---...

2019-01-20 11:31:44 154

原创 顺序栈以及链式栈的浅析

栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操 作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。不含任 何元素的栈称为空栈,栈又称为后进先出的线性表链式栈与顺序栈相比有很多优点。当栈需要动态变化时,如果使用顺序栈,如果设置过大会造成很多的资源浪费;如果过小,当栈溢出时,需要开辟一块更大的空间同时将原来栈中的元素全部拷贝过去,造成较大的时间开销。相反,用链接表示可以动态...

2019-01-20 11:29:23 1946

原创 关于单链表的逆置问题

大家都知道单链表是只能前结点找到后结点的,关于单链表的逆置也困扰了我很久,终于受不了了,进行了一番重新学习在我学到的方法有这么几种:三指针法(也可以理解为辅助指针法)、头插法、今天学到的递归;壹、三指针法:我们先来看这个理解图这个图看上去应该可以很好的理解这种方法;下面就是三指针法的实现:typedef int DataType; //类型定义typedef struc...

2019-01-15 19:38:02 745

原创 单链表(C++)

头文件(.h)#include&lt;iostream&gt;using namespace std;class Node{public: int _data; Node* next; Node() { next = nullptr; }};class List {private: Node *head;public: List(); ...

2019-01-15 19:16:10 137

原创 C++关于浅拷贝、深拷贝以及写时拷贝的认识

C++中拷贝分为浅拷贝、深拷贝、写时拷贝。浅拷贝:又称位拷贝,是将别人的指针拷贝过来,从而使得多个对象共享一份资源。这就是string调用默认拷贝构造函数出现的问题,最终导致的问题是,s1、s2共用同一块内存空间,在释放时同一块 空间被释放j引起程序崩溃 接下来我们来说说深拷贝,深拷贝是重新开辟一块空间,将别人的内容拷贝过来,这样就不会出现浅拷贝出现的问题了接下来就用strin...

2019-01-13 20:36:29 207

原创 Date(日期类)的实现

头文件(.h)#pragma onceclass Date{public: Date(int year = 1900, int month = 1, int day = 1); // Date(const Date&amp; d); // Date&amp; operator=(const Date&amp; d); // ~Date(); bool operator&...

2019-01-10 23:07:42 285

原创 函数模板与类模板(模板类)

什么是泛型编程?泛型编程:编写与类型无关的通用代码,是代码复用的一种手段。模板是泛型编程的基础。模板分为函数模板和类模板下面我们就来说说函数模板:函数模板与类型无关,在使用时被参数化,根据实参类型产生函数的类型版本格式:template<typename T1,typename T2......typename Tn>返回值类型 函数名(参数列表){}...

2019-01-08 11:59:45 663

原创 c++运算符的重载

c++允许大部分运算符的重载不允许重载的运算符(.  *  ::   sizeof  ?:)(就只有这五种不可以重载)重载运算符又分为单目运算符,双目运算符,流插入运算符和流提取运算符以下就是重载这几种运算符的简单的例子://#include&lt;iostream&gt;//using namespace std;//class String//{//public:/...

2019-01-07 11:11:20 464 2

原创 构造函数和析构函数(day one)

构造构造函数(初始化函数):构造函数是对对象的初始化数据成员不能在声明时进行初始化带参数的构造函数:构造函数名(类型1,形参1,类型2,形参2,.....)类名 对象名(实参1,实参2,......);初始化表对数据成员进行初始化:Data::Data(int year,int month,int day):year(_year),month(_month),day...

2018-12-26 08:34:22 226

原创 初识类与对象

在c++中,类和c语言中的结构体有所不同:c语言中结构体只能定义变量                                                                     c++中的类不仅可以定义变量还可以定义函数一般c++对类的定义可以用class和strcut,但是经常还是用class。类的成员:成员函数与成员变量类的定义分为两种方式:  ...

2018-11-29 16:35:42 177

原创 数组的相关知识

数组:就是只能存放一种数据类型,比如int类型的数组、float类型的数组,里面存放的数据称为“元素”数组的定义:首先声明数组的类型,然后声明数组元素的个数(也就是需要多少存储空间)格式: 元素类型 数组名[元素个数];一维数组与函数参数:  一维数组的元素作为函数实参,与同类型的简单变量作为实参一样,是单向的值传递,即数组元素的值传给形参,从而形参是改变不影响实参数组名代表着整个数组的地址,如果...

2018-04-14 23:08:02 124

原创 c语言操作符总结

  一、算术操作符。首先了解一下算术标识符都有哪些:+、-、*、/、%。二、移位操作符。移位操作符有两种:&gt;&gt;(右移操作符)、&lt;&lt;(左移操作符)。特别注意右移操作时分为两种情况:1、算术右移;2、逻辑移位。算术右移情况指的是:二进制数有正负之分,补位时要注意符号位;逻辑移位情况指的是:不需要考虑符号产生的问题,直接补0即可。三、位操作符。位操作符包括:&amp;(按位与)、...

2018-04-04 16:43:24 133

空空如也

空空如也

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

TA关注的人

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