自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【计算机网络】--- HTTP与HTTPS协议详解

【计算机网络】 HTTP与HTTPS协议详解引言:当我们打开一个网页时,奇妙之旅就此开始,作为对世界了解的一个重要窗口,从打开网页或者输入网址后,这中间到底都发生了些什么呢?带着种种疑惑,我们一起来探索一下这其中的奥秘!一.URL定义:在www上每一信息资源都有统一的且在网上唯一的地址,该地址就叫URL(Uniform Resource Locator,统一资源定位符),它是www的统一资...

2020-03-09 17:16:12 3971 5

原创 【C++】---STL::vector和list的区别

【C++】—STL::vector和list的区别

2020-03-05 15:50:58 1064 4

原创 【计算机网络】---HTTP状态码详解

【计算机网络】—HTTP状态码详解引言:当浏览者访问一个网页时,浏览者的浏览器会向网页所在服务器发出请求。当浏览器接收并显示网页前,此网页所在的服务器会返回一个包含HTTP状态码的信息头(server header) 用以相应浏览器的请求,在参考了一些资料后,整理了目前所有已定义的状态码供大家参考。一、HTTP状态码的作用:HTTP状态码的核心作用是Web Server服务器用来告诉客户端,...

2020-03-04 11:28:26 1255 5

原创 【计算机网络】---数据报套接字通信

【计算机网络】 数据报套接字数据报套接字。它提供了一种无连接、不可靠的双向数据传输服务。数据包以独立的形式被发送,并且保留了记录边界,不提供可靠性保证。数据在传输过程中可能会丢失或重复,并且不能保证在接收端按发送顺序接收数据。在TCP/IP协议簇中,使用UDP协议来实现数据报套接字。在出现差错的可能性较小或允许部分传输出错的应用场合,可以使用数据报套接字进行数据传输,这样通信的效率较高。其服务灵...

2019-12-26 17:04:12 4025 2

原创 【计算机网络】--- 流式套接字通信

【计算机网络】 流式套接字流式套接字为网络应用程序提供了可靠的、面向连接的双向数据传输服务,实现了数据无差错、无重复的发送。它内设流量控制,被传输的数据看作是无记录便捷的字节流,在TCP/IP协议簇中,使用TCP协议来实现字节流传输,当用户想要发送大批量的数据或者对数据传输有较高要求的时候,就可以使用流式套接字。当然,它适合于大多数应用场景,也是初学者使用套接字编程的主要方法。TCP协议的传输...

2019-12-23 20:58:53 3769 7

原创 【Leetcode】--- 二叉树层次遍历(102)

【Leetcode】— 二叉树层次遍历(102)法一:广度优先搜索利用队列先进先出的规则,在遍历二叉树的时候,将每一层的所有节点放入队列中,然后出队即可,在这同时,将下一层的节点也push进了队列中,直至遍历完所有节点。class Solution {public: vector<vector<int>> levelOrder(TreeNode* root)...

2019-12-22 20:21:43 1695 7

原创 【leetcode】---二叉树前、中、后序遍历

【leetcode】—二叉树前、中、后序遍历

2019-12-22 18:07:04 1629 6

原创 【C++】---指针和引用的区别

【C++】—指针和引用的区别两者本质:引用是别名,指针是地址、实体两者区别: 1.初始化要求不同:引用在创建的同时必须初始化,即引用到一个有效的对象,而指针在定义的时候不必初始化,可以在定义后面的任何地方重新赋值。 2.可修改性性不同:引用一旦被初始化为指向一个对象,它就不能被改变为另一个对象的引用;而指针在任何地方都可以改变为指向另一个对象。给引用赋值并不是改变它和原始对象的绑定关系。...

2019-12-21 20:14:49 1648 6

原创 【Linux】---进程和线程(面试常考点)

【Linux】—进程和线程进程的概念:进程(Process)是指计算机中已运行的程序,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。在早期面向进程设计的计算机结构中,进程是程序的基本执行实体;在当代面向线程设计的计算机结构中,进程是线程的容器。进程是程序真正运行的实例,若干进程可能与同一个程序相关,且每个进程皆可以同步或异步的方式独立运行。(来自百度百科)描述进程:进程信息被放在一...

2019-12-18 19:11:25 2848 9

原创 【网络编程】---C++实现原始套接字捕获数据包

【网络编程】—C++实现原始套接字捕获数据包引言:通过创建原始套接字,获取本地可用的Ip地址,选择捕获数据包使用的网卡,绑定本地地址后,设置网卡为混杂模式,实现循环接收并显示数据来实现捕获数据包。...

2019-12-18 18:09:21 7536 8

原创 【Centos 7】---vim环境配色(colorscheme)配置

【Centos 7】—vim环境配色引言:elflordbluedarkbluedefault

2019-12-17 16:30:47 3458 3

原创 【Linux】---死锁及其相关问题

【Linux】—死锁及其相关问题死锁的定义:死锁(Deadlock),指的是进程死锁,是个计算机技术名词。它是操作系统或软件运行的一种状态:在多任务系统下,当一个或多个进程等待系统资源,而资源又被进程本身或其它进程占用时,就形成了死锁。由于资源占用是互斥的,当某个进程提出申请资源后,使得有关进程在无外力协助下,永远分配不到必需的资源而无法继续运行,这就产生了一种特殊现象。(来自百度百科)死锁...

2019-12-10 12:01:15 3899 4

原创 【数据结构】---模拟实现搜索二叉树

【数据结构】—模拟实现搜索二叉树引言:随着数据结构STL学习的不断深入,我们已经了解了序列式容器vector,list,string等,接下来进入到关联式容器中。两者都被用来存储数据,与序列式容器的线性结构不同的是,其里面存储的是<key, value>结构的键值对,在数据检索时比序列式容器效率更高。根据应用场景的不同,STL总共实现了两种不同结构的管理式容器:树型结构与哈希结构。树...

2019-12-10 10:25:02 4118 3

原创 VS2013---解决Microsoft SQL Server Compact 4.0 提示未安装

VS2013—解决Microsoft SQL Server Compact 4.0 提示未安装引言:VS的智能自动补全还是很方便的,前几天小白不小心把自己的VS2013卸载了一次,后来安装上之后,就出现了各种问题,其中一个就是自动补全功能消失了,在写项目的时候真的真痛苦,函数名或者对象名一个字母都需要自己精准的敲出来,在网上找了很多博客分享也没有找到问题所在,今天找了一篇博客终于解决了问题。按...

2019-12-09 09:51:35 7686 22

原创 【数据结构】---模拟实现简单二叉树

【数据结构】—模拟实现二叉树引言:二叉树的提出给世界带来了很多的便利,但是作为数据结构重点和难点,想要完全弄透树还是很有挑战性的,STL中的map和set底层均为树型结构,还有数据结构公认难点红黑树和b树。今天我们来简单实现一个二叉树,从简单入手,摸清它。树是一种非线性的数据结构,它是由n(n>=0)个有限结点组成一个具有层次关系的集合。把它叫做树是因为它看起来像一棵倒挂的树,也就是说它是...

2019-12-06 13:31:00 4085 4

原创 【数据结构】---模拟实现堆

【数据结构】—模拟实现堆引言:数据结构又一大重点结构堆,在后边的堆排序中我们会用到它。堆的定义:如果有一个关键码的集合K = {k0,k1, k2,…,kn-1},把它的所有元素按完全二叉树的顺序存储方式存储在一个一维数组中,并满足:Ki <= K2i+1 且 Ki<= K2i+2 (Ki >= K2i+1 且 Ki >= K2i+2) i = 0,1,2…,则称为...

2019-12-05 13:44:47 3977 2

原创 【数据结构】---模拟实现带头双向循环链表

【数据结构】—模拟实现带头双向循环链表引言:在前不久对单链表做了详细了解和代码实现后,今天我们继续来探索链表中最常用到之一的双向循环链表。[模拟实现单链表](https://blog.csdn.net/L19002S/article/details/102901883)带头双向循环链表:结构最复杂,一般用在单独存储数据。实际中使用的链表数据结构,都是带头双向循环链表。另外这个结构虽然结构复杂...

2019-12-04 16:39:28 3999 6

原创 【牛客网】---年终奖 && 迷宫问题

【牛客网】—年终奖 && 迷宫问题引言:动态规划问题对小白来说可能是噩梦般的存在,烧脑,晦涩难懂,可能连题意还没搞清楚,本场笔试就结束了,今天在这里跟大家分享两个动态规划问题。题目一描述:定义一个二维数组N*M(其中2<=N<=10;2<=M<=10),如5 × 5数组下所示:int maze[5][5] = { 0, 1, 0, 0, 0,...

2019-12-04 16:21:32 4432 3

原创 【牛客网】---手套 &&幸运的袋子

【牛客网】—手套 && 幸运的手套题目一描述如下:在地下室里放着n种颜色的手套,手套分左右手,但是每种颜色的左右手手套个数不一定相同。A先生现在要出门,所以他要去地下室选手套。但是昏暗的灯光让他无法分辨手套的颜色,只能分辨出左右手。所以他会多拿一些手套,然后选出一双颜色相同的左右手手套。现在的问题是,他至少要拿多少只手套(左手加右手),才能保证一定能选出一双颜色相同的手套。给...

2019-11-23 15:40:08 4089 4

原创 【C++】野指针及其危害

【C++】野指针及其危害引言:小白在初期敲代码时最可能碰到的问题之一估计就是野指针了,因为它在写程序的时候一不注意就写出来了,且不容易被发现,调试半天可能也不会出结果。去找大佬一看,其实就是一个很简单的野指针问题,那么我们今天就来学习一下关于野指针的问题,以及怎么在敲代码时如何规避它。什么是野指针呢?答:“野指针”并不是NULL指针,而是在定义上没有初始化,值为随机,又或者是指向了已经被释放...

2019-11-21 15:49:37 5781 6

原创 【牛客网】---参数解析 && 查找组成一个偶数最接近的两个素数

【牛客网】—参数解析 && 查找组成一个偶数最接近的两个素数题目一描述如下:在命令行输入如下命令:xcopy /s c:\ d:\,各个参数如下:参数1:命令字xcopy参数2:字符串/s参数3:字符串c:参数4: 字符串d:请编写一个参数解析程序,实现将命令行各个参数解析出来。解析规则:1.参数分隔符为空格2.对于用“”包含起来的参数,如果中间有空格,不能...

2019-11-21 15:00:04 4021 5

原创 【leetcode】---栈实现队列

【leetcode】–栈实现队列解题思路:在这里,我们首先要用到两个栈进行来回倒数据,建立输入栈和输出栈,先把数据push进栈InputStack中,然后再把InputStack栈里面的数据拷贝给输出栈OutputStack中,接下来pop栈OutputStack,直到将其清空为止,然后又把数据拷贝给InputStack,pop空OutputStack,无形之中就完成了队列的先进先出****FI...

2019-11-20 11:50:51 3951 4

原创 【数据结构】--模拟实现队列

【数据结构】–模拟实现队列引言:队列(queue)作为数据结构又一大经典特殊线性结构,遵循先进先出,只允许在一端进行插入数据操作,在另一端进行删除数据操作的的特性。<queue>还是一个适配器类,底层默认为deque。在操作系统的生产者与消费者模型学习中,我们用到了环形队列。接下来我们一起探索一下它。如图:用数组实现一下:代码如下:queue.h#define _CRT_...

2019-11-19 22:00:29 3958 1

原创 【牛客网】---多态经典选择题

【牛客网】—多态经典选择题引言:今天在牛客网刷题时遇到了两个很经典的关于继承和多态的选择题,想在这里和大家一起分享一下思路和心得体会。注:在这里我们注意到virtual函数是动态绑定,而C++编译器中默认缺省参数值则是静态绑定。①那么虚函数是如何实现动态绑定的呢?答:通过类的虚函数表和对象的虚表指针,通过对象的虚表指针我们可以找到实际类的虚函数表,从而多态调用不同的虚函数。②根据《Ef...

2019-11-18 22:52:36 3530 9

原创 【数据结构】---模拟实现栈

【数据结构】—模拟实现栈引言:栈作为一种经典的数据结构,是一种只能在一端进行插入和删除操作的特殊线性表,在C++的STL中也提供其接口<stack> ,直接提供了对栈操作的所有函数,在平时许多撸代码应用场景下非常实用且便捷。定义:栈(stack)又名堆栈,它是一种运算受限的线性表。限定仅在表尾进行插入和删除操作的线性表。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素...

2019-11-16 11:20:12 3004 7

原创 【牛客网】---把字符串转换成整数

【牛客网】—把字符串转换成整数题目如下:解题思路:通过首位判断符号,设置符号标记,若首位是‘+’或‘-’,变成‘0’,在检验每一位的同时,将其变成整数。代码如下:class Solution {public: int StrToInt(string str) { if(str.empty()) { return 0; ...

2019-11-13 20:53:25 3129 5

原创 【牛客网刷题】---找出数组中出现次数超过数组大小一半的数字

【牛客网刷题】—找出数组中出现次数超过数组大小一半的数字题目如下:思路:本题打眼一看容易让人想到用一个计数器把每个数字都记录一边,但是这个想法是很混沌的,非常难以实现,因为这是一个无序的数组。我的方法是,先把这个数组进行升序排序,如果我们要找的这个数字存在,那么无论这个数字从arry[begin]开始出现还是arry[end]出现,它都会出现在arry[mid]的位置。用两个for循环控制,...

2019-11-08 16:34:53 3246 3

原创 【C/C++】---运算符优先级

【C/C++】—运算符优先级引言:不知道大家有没有遇到过这种情况,在刷题写代码的时候,被一个运算符的优先级弄得头疼,例如下题题解如下:++ 作为后缀时的优先级比* 高,结合律从左到右。因此D p++ 是先p++, 而后(p++)的。++作为后缀时优先级和()一样高,结合律从左到右。结合律仅考虑同优先级时。因此(*p)++ 能够先得到1009 然后++。++ 作为前缀时的优先级和* 一样高...

2019-11-07 19:22:40 3181 2

原创 【牛客网】---元素查找

【牛客网】—元素查找题目如下:解题思路:本题题目描述存在一点缺陷就是没有说明是升序还是降序,在此我们默认为升序排序,利用二分查找算法的思想,设置指针begin,mid,end,对数据进行对半分割,一半必为有序,一半无序,需要查找的数X可能在左边,也可能在右边,每次通过移动三个指针,缩小范围,直至找到X为止。如下图所示:代码如下:class Finder {public: i...

2019-11-06 19:41:24 3227 1

原创 【牛客网】---字符集合

【牛客网】—字符集合如题:输入一个字符串,求出该字符串包含的字符集合输入描述:每组数据输入一个字符串,字符串最大长度为100,且只包含字母,不可能为空串,区分大小写。输出描述:每组数据一行,按字符串原有的字符顺序,输出字符集合,即重复出现并靠后的字母不输出。示例1输入abcqweracb输出abcqwer思路:本题利用类似hash的方法,因为字符的ASCII码最多是256...

2019-11-06 17:24:56 3164 1

原创 【数据结构】---模拟实现单链表(C语言)

【数据结构】—模拟实现单链表(C语言)引言:单链表作为数据结构中非常重要的链式存取结构因为其支持尾插尾删,头插头删,且支持任意位置插入删除的优良特性被广泛应用于许多场景,当然也在面试和笔试中常常被点击。它在物理存储结构上非连续、非顺序,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。定义(两种):无头单向非循环链表:结构简单,一般不会单独用来存数据。实际中更多是作为其他数据结构的子结...

2019-11-04 18:24:27 2965 5

原创 【数据结构】---模拟实现顺序表(C语言)

【数据结构】—模拟实现顺序表(C语言)引言:顺序表是数据结构的一种简单线性结构,在学习过程中,刚从C语言过渡到数据结构,承前启后,既考验C语言语法功底,又考验了对数据结构入门知识的了解。定义:顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储。在数组上完成数据的增删查改。顺序表一般可以分为:静态顺序表:使用定长数组存储。#define N 100...

2019-11-02 16:01:50 2985 2

原创 【数据结构】---时间复杂度与空间复杂度

【数据结构】–时间复杂度与空间复杂度引言:一个算法的优劣主要取决于执行时间和所占用的存储空间,即时间复杂度T(n)和空间复杂度S(n)。一、O渐进表示法(重点)1.定义:在一个算法语句总的执行次数总是关于问题规模N的某个函数,我们把它记为f(N),N称为问题的规模。语句总的执行次数记为T(N),当N不断变化是,T(N)也在变化,算法执行次数的增长速率和f(N)的增长速率相同。则有T(N)=O...

2019-11-01 22:18:02 3134 3

原创 【C++】---模拟实现string类

【C++】–模拟实现string类引言:在面试中,很有可能面试官一上去就会让你手撸代码,写一个简单的string类,这也是一个点击率超高的考点,那么我们今天来探索一下什么是string类,以及如何实现string类。一、String类的六大默认成员函数1.构造函数 String(const char* str = "")//构造函数 { _size = strlen(str); ...

2019-10-31 20:54:44 3165 4

原创 【leetcode】---逆波兰表达式求值

【leetcode】–逆波兰表达式求值引言:在力扣网刷题时找了一道中等难度的题,其实在我看来应该划归为简单栏的,下面我们就一起来看一下这个题的思路和代码。思路:逆波兰式:也就是后缀表达式(将运算符写在操作数之后)计算逆波兰式需要用到一个栈(用于存入计算用到的数值)。计算逆波兰式依据以下规则:遍历用户输入的逆波兰式。如果遍历到的元素是一个数值,那么把该元素入栈等待后续计算;如果遍历...

2019-10-30 14:04:54 3165 9

原创 【C语言】---猜数字游戏

【C语言】–猜数字游戏引言:在基本懂得C语言的各项语法和语句控制之后,在书本上找到了一个超级简单的入门游戏制作,即猜数字游戏(给定一个范围的数字,随即猜测正确值),看似很简单,其实也有几点比较坑的地方。1.随机数该怎么生成且不会重复,确定范围。2.循环语句的控制。3.要调用库函数,所以要正确使用头文件。代码如下:#define _CRT_SECURE_NO_WARNINGS 1#i...

2019-10-30 10:43:34 2949 4

原创 【面试题】---new和malloc的区别

【面试题】-- new和malloc的区别引言:看过很多C/C++的基础面经不难发现很多常考的问题,new和malloc的区别这一经典面试题,相信很多人都在面试中遇到过,但是很难答的全面,因此想有详细完整的答案,在查阅资料以及自我见解总结之后,今天我在这里整理了一下,以便日后复习使用。一、两者实现原理(不太重要,大概浏览):new的实现原理:new的底层就是malloc,他会先调用mall...

2019-10-29 15:49:44 3807 1

原创 【C语言】---模拟实现通讯录

【C语言】–模拟实现通讯录基本思想:1.建立一个结构体,通过结构体数组存储通讯录中每个人的信息。2.使用静态数组来对通讯录经行增删查改的系列操作。实现的功能:1.添加通讯录成员(add)2.删除通讯录成员(del)3.查找通讯录成员(search)4.修改通讯录成员信息(modify)5.显示通讯录成员信息(show)6.清空所有联系人(empty)7.以名字排序所有联系人(...

2019-10-28 23:41:18 3710 3

原创 【C++】---日期计算器

【C++】–日期计算器注:可能有时你也会被这样的问题所烦恼,你想要知道自己活了多少天的话,乍一想这该怎么计算呢,捋一捋,要计算平年闰年,每个月多少天等等等苦恼着,下面我们通过C++来实现一个日期计算器,来帮你解决这一切的烦恼。实现功能:1.年与年,月与月,天与天的加减法。2.日期加减一个天数。3.计算两个日期相隔多少天。实现难点:1.引用的正确使用。2.不能很好的控制每个月份的天数...

2019-10-28 19:51:31 4858 2

原创 【数据结构】--- kmp算法和strstr函数

kmp算法和strstr函数注:现实生活中,字符串匹配在很多的应用场景里都有着极其重要的作用,包括生物信息学、信息检索、拼写检查、语言翻译、数据压缩、网络入侵检测等等,至此诞生了很多的算法,那么我们今天就来探索这两种经典的算法。一、概念分析首先我们需要了解到什么是kmp算法和strstr函数概念如下:KMP算法是一种改进的字符串匹配算法,由D.E.Knuth,J.H.Morris和V.R....

2019-10-25 17:19:12 6474 6

空空如也

空空如也

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

TA关注的人

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