自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

每天进步一点点

抬头看路,低头拉车

  • 博客(30)
  • 资源 (1)
  • 收藏
  • 关注

原创 【计算机网络】Socket的插座理解法

我们可以将Socket(套接字)解释为插座,这样的话更便于我们理解,具体为:1 可以将每一个插头理解为一个SocketID,两孔插头为TCP,三孔为UDP,所有的插头都由管家(内核)保管,每次只能向他申请一个插头。一个主机或服务器只有一个插排(IP地址),上面有很多插孔(port)。serv_sock= socket(PF_INFT,SOCK_STREAM,0);这个函数可以理解为向管家申请一个插头,由于第二个参数为TCP,所以管家给了你一个两孔插头,这个两孔插头上有一个特定的标号,为se

2020-10-05 11:12:00 1299 1

原创 【计算机网络】孤儿进程和僵尸进程

关于孤儿进程和僵尸进程的定义与解释来自大佬:https://www.cnblogs.com/Anker/p/3271773.html1、什么是孤儿进程和僵尸进程  我们知道在unix/linux中,正常情况下,子进程是通过父进程创建的,子进程在创建新的进程。子进程的结束和父进程的运行是一个异步过程,即父进程永远无法预测子进程 到底什么时候结束。当一个 进程完成它的工作终止之后,它的父进程需要调用wait()或者waitpid()系统调用取得子进程的终止状态。  孤儿进程:一个父进程退出,而它的.

2020-08-02 21:17:56 288

转载 【计算机网络】TCP粘包

转载自:https://blog.csdn.net/weixin_41047704/article/details/85340311在socket网络编程中,都是端到端通信,由客户端端口+服务端端口+客户端IP+服务端IP+传输协议组成的五元组可以明确的标识一条连接。在TCP的socket编程中,发送端和接收端都有成对的socket。发送端为了将多个发往接收端的包,更加高效的的发给接收端,于是采用了优化算法(Nagle算法),将多次间隔较小、数据量较小的数据,合并成一个数据量大的数据块,然后进行封包。那

2020-07-31 10:51:57 308 1

原创 【计算机网络】UDP注意事项

1,一般情况下,TCP比UDP慢,原因通常有以下两点: (1)收发数据前后进行的连接设置及清除过程; (2)收发过程中为保证可靠性而添加的流控制;2,UDP服务端与客户端均只需1个套接字。3,UDP套接字不会保持连接状态,每次收发数据都要提供对方的IP地址和端口号。4,UDP客户端程序(如PC与PLC通信时,PLC的IP和端口固定,所以一般PC为客户端)int sock;char message[BUFF_SIZE];int str_len;socklen_t a...

2020-07-30 16:37:51 603

原创 【LeetCode】【总结】 三大子序列最值问题(最长公共子序列、最长上升子序列、最长回文子序列)

做力扣的时候发现都可以用动态规划的方法解决上述三个子序列问题,并且发现三者之间有些关联。下面先挨个分析各个问题:1、最长公共子序列如下图所示,这是两个字符串,从中找出之间的公共子序列。则最长公共子序列为:我们可以通过动态规划的方法解决问题,重点就是如何原问题分解成子问题,我们发现如果两个字符串的最后一个字符相等,即str1[i] = str2[j],那么我们可以将其分...

2020-03-30 19:25:18 604

原创 【LeetCode】No.53 最大子序和(动态规划)

class Solution {public: int maxSubArray(vector<int>& nums) { if(nums.empty()) return 0; int maxValue = nums[0]; for(int i =1;i<nums.size();i++){ n...

2020-03-09 13:48:57 133

原创 【计算机网络】TCP的连接释放

TCP的连接释放俗称TCP的四次挥手,即客户端与服务器端之间传输4次报文段。其具体的释放过程如图:在释放之前,双方都处于连接(ESTABLISHED)状态。若客户端A进程已经没有数据向服务器B进程发送了,并且乡释放连接,则便向B发送连接释放报文段,其中FIN=1,序号seq=u(之前发送数据的最后一个字节的序号为u-1),发送后便进入FIN-WAIT-1状态。 当B收到...

2020-02-21 15:23:40 1410

原创 【计算机网络】-TCP的连接建立

TCP的连接建立又称为三次握手,谢希仁版教材中成为三报文握手,即客户端进程与服务器端进程通过三次报文的传输建立了TCP连接。首先TCP首部为:连接流程:注意:序号:自己发送的报文段的数据的第一个位置序号。确认号:期望收到对方下一个报文段的第一个数据字节的序号。确认ACK:仅当ACK=1的时候确认号字段才有效,规定建立连接后所有的报文段的ACK=1。同步SYN:...

2020-02-18 17:29:23 956

原创 【LeetCode】No.376 摆动序列(C++实现贪心算法)

分析:其实题意分析起来不难,上图中diff分别为nums[i]-nums[i-1],如果大于零就表示为1,小于零就表示为-1。知道找到最长的不连续的1和-1序列即可,如上图中的三个连续的1删除左边的10和12,两个连续的-1删除10。而且很容易就能写出事件复杂度为O(n)的程序,但重点就在于空间复杂度,能不能用O(1)的空间复杂度完成编程?能!一个变量表示序列的变化即可。...

2019-12-31 15:36:11 554

原创 【LeetCode】No.134 加油站(C++实现贪心算法)

在一条环路上有N个加油站,其中第i个加油站有汽油gas[i]升。你有一辆油箱容量无限的的汽车,从第 i 个加油站开往第 i+1个加油站需要消耗汽油cost[i]升。你从其中的一个加油站出发,开始时油箱为空。如果你可以绕环路行驶一周,则返回出发时加油站的编号,否则返回 -1。说明: 如果题目有解,该答案即为唯一答案。 输入数组均...

2019-12-31 11:39:09 605

原创 【LeetCode】No.55 跳跃游戏(C++实现贪心算法)

给定一个非负整数数组,你最初位于数组的第一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个位置。方法一:反向贪心class Solution {public: bool canJump(vector<int>& nums) { if(nums.empty()) retur...

2019-11-25 17:33:45 385

原创 【LeetCode】No.17 电话号码的字母组合(C++实现)

1,题目描述给定一个仅包含数字2-9的字符串,返回所有它能表示的字母组合。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。2,解题思路采用深度优先搜索的方法,下面描述其操作流程1,假设输入的字符串为:234,每个数字都包含3个字母,理论上有3^3种排列组合。2,可以先选定2中的a、和3中的d,遍历4中的ghi。然后再选定2中的a、和3中...

2019-11-11 20:29:17 475 1

原创 【LeetCode】No.5 最长回文子串(C++实现马拉车算法)

1,题目描述给定一个字符串 s,找到 s 中最长的回文子串。你可以假设s 的最大长度为 1000。示例 1:输入: "babad"输出: "bab"注意: "aba" 也是一个有效答案。示例 2:输入: "cbbd"输出: "bb"2,马拉车算法(Manacher算法)在我们考虑暴力穷举时,其时间复杂度达到了惊人的O(n^3),再考虑中心拓展法时,其时间复杂度度为O...

2019-11-07 20:31:00 440

原创 【LeetCode】No.3 无重复字符的最长子串(C++实现)

1,题目描述给定一个字符串,请你找出其中不含有重复字符的最长子串的长度。示例1:输入: "abcabcbb"输出: 3解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例 2:输入: "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。示例 3:输入: "pwwkew"输出: 3解释: 因为无重复字符的最...

2019-11-02 17:59:23 359

原创 【LeetCode】No.1234 替换字串得到平衡字符串(C++实现)

1,题目描述:有一个只含有'Q', 'W', 'E','R'四种字符,且长度为 n的字符串。假如在该字符串中,这四个字符都恰好出现n/4次,那么它就是一个「平衡字符串」。给你一个这样的字符串 s,请通过「替换一个子串」的方式,使原字符串 s 变成一个「平衡字符串」。你可以用和「待替换子串」长度相同的任何 其他字符串来完成替换。请返回待替换子串的最小可能长度。...

2019-10-30 20:25:31 592

原创 【C++】explicit关键字

Whatexplicit 关键字防止在对对象初始化时使用自动类型转换,而产生的新关键字。Why假设一个类的构造函数只有一个参数,或者有n个参数但是其中的n-1个已经有默认值时(这里的参数是指构造函数的参数列表中的参数,不是类的成员),如:class function{public: function(int a);};当我们在对一个对象初始化或者赋值时,就会产生...

2019-10-16 21:50:10 126

原创 【数据结构】-括号匹配

问题:输入一个带有 '(' 、')'的字符串,编写程序判断左右括号个数是否匹配。输入:(4+3)*5/((34+2)-64)思路: | 若有左括号压入栈中输入字符串--->遍历各字符---> | ...

2019-07-13 17:01:52 2676

原创 【数据结构】-基数排序

What:基数排序是基于箱子排序,把数按照某种基数分解成数字,然后对数字进行排序,如将375按基数10分解为3、7、5,然后先按个位数进行排序,再按十位数、百位数。Why:针对箱子排序算法的Θ(n+range),如果要在0-n^4里面对10个数进行排序,则n=10,range=n^4,那么箱子排序的时间性能便为Θ(n^4)。如果对这10个数进行基数排序,设定基数x,则基数排序的执行步数...

2019-06-10 11:26:30 615

原创 【数据结构】-箱子排序

What:箱子排序是在链表的基础上进行排序,首先把值相同的节点,放在同一个箱子中,然后把箱子链接起来就得到了有序的链表。Why:箱子排序算法的时间复杂度基本保持在Θ(n+2*range),在特殊的场景中有非常好的效果(我不信,因为他排序的数据必须是整型,且如果要对0-999内的10个数进行箱子排序,则至少需要1000个箱子,即range=1000,时间复杂度瞬间升高)。How:...

2019-06-10 09:47:05 3649

原创 【数据结构】-线性表

关于线性表有几个需要注意的地方:目录1 为什么说数组表述的顺序存储线性表的存取时间性能为O(1)?2 顺序结构、单向链表、双向链表的优缺点?1 为什么说数组表述的顺序存储线性表的存取时间性能为O(1)?首先定义存储结构:#define MAXSIZE 20typedef int elemTypetypedef struct{ elemType data[MA...

2019-05-31 15:18:45 222

原创 【数据结构】-大O计法

大O计法原则: 1,用1取代运行时间中所有的常数项; 2,只保留最高阶项; 3,如果存在除常数外的最高阶项,则去除最高阶项前的系数。 如 f(n)=3n^2+2n+4; ------&g...

2019-05-31 14:42:31 817

原创 C++Primer第五版课后练习代码【第十章】11-20题

bool isShorter(const string & s1,const string & s2){ return (s1.size()<s2.size());}void function_10_11(void){ /*elimDups函数*/ vector<string> txt; string word; ...

2019-05-29 15:42:19 130

转载 【C++】Lambda表达式

转载自:https://www.cnblogs.com/jimodetiantang/p/9016826.html1. 概述C++ 11 中的 Lambda 表达式用于定义并创建匿名的函数对象,以简化编程工作。Lambda 的语法形式如下:[函数对象参数] (操作符重载函数参数) mutable 或 exception 声明 -> 返回值类型 {函数体}可以看到,Lamb...

2019-05-28 21:06:23 989

原创 C++Primer第五版课后练习代码【第十章】1-10题

#ifndef FUNCTION_10_H_#define FUNCTION_10_H_#include<iostream>#include<algorithm>#include<vector>#include<list>#include<forward_list>#include<deque>#includ...

2019-05-27 15:33:49 209

原创 C++Primer第五版课后练习代码【第九章】

只是粘贴部分题目的代码,其实本章其它练习的代码也已经被包含其中了。粘贴了一个.h文件,可以直接拷贝下来用。#ifndef FUNCTION_9_H_INCLUDED#define FUNCTION_9_H_INCLUDED#include<iostream>#include<string>#include<list>#include<v...

2019-05-26 19:19:20 183

原创 C++Primer第五版课后练习代码【第八章】

只是粘贴部分题目的代码,其实本章其它练习的代码也已经被包含其中了。粘贴了一个.h文件,可以直接拷贝下来用。#ifndef FUNCTION_8_H_INCLUDED#define FUNCTION_8_H_INCLUDED#include<iostream>#include<fstream>#include<sstream>#include...

2019-05-14 16:50:51 173

转载 C++Primer第五版——习题答案详解

转载自: https://blog.csdn.net/misayaaaaa/article/details/53786215 C++Primer第五版——习题答案详解目录 C++Primer第五版——习题答案详解第一章第二章...

2019-05-11 09:21:07 1133

原创 【C++】类的继承

学习类的继承,有几,个重点感觉需要记一下:1,派生类不能直接访问基类的私有成员,但可以访问基类的公有成员,或者将基类的私有成员定义成保护成员,派生类可以直接访问(但这样失去 了数据的安全性)。2,基类指针和基类引用可以直接指向和引用派生类成员,但是反过来却不可以。可以通过此方法定义一个基类指针类型的数组,里面可以存储基类和派生类。3,抽象基类(ABC,abstract base cla...

2019-05-03 21:24:31 157

原创 Opencv学习笔记-掩模操作

(小白一只,刚刚步入视觉领域,因为导师的项目需要用c++,所以想通过博客记录我的学习历程,有不对之处请大神及时指正,千万不要留有情面【笑哭】)前言学习过冈萨雷斯的《数字图像处理》的小伙伴们对掩模的功能肯定了解,掩模其实就是一个奇数乘奇数(如3*3,5*5,7*7等)的一个窗口,我们将窗口滑过整幅图像,并同时进行乘加操作,便可得到新的图像,主要用于滤波或锐化等操作。正题如何用Open...

2018-10-14 11:07:31 1469

转载 光电科技协会板球控制系统

做到最后奖项什么的都不重要了,重要的是我们在比赛准备期间和比赛期间所学到的东西吧,我感觉最重要的还是团队和坚持。今天已经是9月1号了,感觉有必要把电赛这几天的经历和板球控制系统的思路说出来和大家分享一下。仅代表自己观点,大神勿喷,如有错误请及时指正。

2017-09-04 08:55:15 2840 2

stm32示波器

基于stm32F103ZET6的示波器,代码完备,欢迎下载,仅供个人参考学习。

2018-09-23

空空如也

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

TA关注的人

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