自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(123)
  • 资源 (4)
  • 收藏
  • 关注

原创 [Opencv学习]Opencv4.5 关闭日志输出

Opencv4.5 关闭日志输出当每次操作时候出现这样一大堆东西其实是默认在打log我们只需要进行两部操作就可以解决这些无关紧要的log首先引入头文件#include <opencv2/core/utils/logger.hpp>再其次进行调用函数cv::utils::logging::setLogLevel(utils::logging::LOG_LEVEL_SILENT);这样就完美解决了...

2021-11-30 11:59:28 3705 2

转载 【网络编程】ping 原理与ICMP协议

ping 的原理ping 程序是用来探测主机到主机之间是否可通信,如果不能 ping到某台主机,表明不能和这台主机建立连接。 ping 使用的是ICMP协议,它发送icmp回送请求消息给目的主机。ICMP协议规定:目的主机必须返回ICMP回送应答消息给源主机。如果源主机在一定时间内收到应答,则认为主机可达。ICMP协议通过IP协议发送的,IP协议是一种无连接的,不可靠的数据包协议。在Unix/Linux,序列号从0开始计数,依次递增。而Windows  ping程序的ICMP序列号是没有规律。ICMP

2021-06-13 09:18:27 544

原创 【C++】哈希(闭散列,开散列)

哈希一级目录二级目录三级目录一级目录二级目录三级目录一级目录二级目录三级目录一级目录二级目录三级目录一级目录二级目录三级目录一级目录二级目录三级目录一级目录二级目录三级目录一级目录二级目录三级目录...

2021-06-07 13:51:40 474

原创 【网络编程】TCP/UDP协议(传输层特性)

TCP/UDP协议(传输层特性)背景知识端口号UDP分析报头UDP特点面向数据报基于UDP的应用层协议TCPTCP报头分析确认应答机制超时重传机制连接管理机制TIME_WAITCLOSE_WAIT滑动窗口流量控制拥塞控制(网络问题)背景知识端口号在TCP/IP协议中, 用 “源IP”, “源端口号”, “目的IP”, “目的端口号”, “协议号” 这样一个五元组来标识一个通信(可以通过netstat -n查看)并且端口号是有范围划分的:0 - 1023: 知名端口号, HTTP, FTP, SS

2021-06-05 09:44:44 322 4

原创 【C++】红黑树

这里写目录标题一级目录二级目录三级目录一级目录二级目录三级目录

2021-06-01 16:59:46 182 2

原创 【网络编程】HTTP协议(网络计算器,URL)

HTTP协议(详谈应用层,传输层)一级目录二级目录三级目录一级目录二级目录三级目录

2021-05-28 11:01:31 259 3

原创 【C++】AVL树(四种旋转方式)

AVL树AVL树概况节点的定义AVL树增删插入删除AVL树旋转单旋转右单旋转左单旋转双旋转AVL树验证及其性能AVL树概况AVL树是在搜索树的基础上机型高度上的调整防止搜索树出现单支树的情况而导致效率低下,一颗AVL树或者空树,具有以下的特点:左右子树都为AVL树左右子树高度只差绝对值不超过1此时二叉搜索树的高度是平衡的,这棵树就是AVL树。图例:节点的定义节点采用的是三叉链的方式进行创建,并且此时填入了一个平衡因子(用来控制左右子树的高度)template<class T&g

2021-05-25 12:32:41 827 9

原创 【C++】Map&&Set

Map&&Set背景知识关联式容器键值对树形结构的关联式容器MapMap基本概况Map的使用MultiSet&&MultiMapSetSet的介绍Set的使用背景知识关联式容器在C++的初期阶段,我们就已经解除了很多容器了包括:vector,list,deque这些容器统称为序列式容器,因为其底层为线性序列的数据结构,里面存储的是元素本身。关联式容器也是用来存储数据的,与序列式容器不同的是,其里面存储的是<key, value>结构的键值对,在数据检索时比

2021-05-24 21:30:54 253

原创 【网络编程】TCP/UDP(socket编程)

TCP/UDP背景知识源IP地址和目的IP地址端口号源端口号和目的端口号网络字节序socket编程socket 常见APIsockaddr结构地址转换函数UDP基本概念UDP服务器和客户端框架服务器(Server)客户端(Client)TCP基本概念三级目录背景知识源IP地址和目的IP地址在IP数据包头部中, 有两个IP地址, 分别叫做源IP地址, 和目的IP地址。应为在链路层传输的时候,只需要去更改MAC的地址但是最终发到哪里是通过识别IP来确定的。端口号端口号(port)是传输层协议的

2021-05-24 16:07:49 815 2

转载 【C++】迭代器和普通自指针有什么区别(非原创)

迭代器与指针的差别:迭代器:(1)迭代器不是指针,是类模板,表现的像指针。他只是模拟了指针的一些功能,通过重载了指针的一些操作符,->,,++ --等封装了指针,是一个“可遍历STL( Standard Template Library)容器内全部或部分元素”的对象, 本质是封装了原生指针,是指针概念的一种提升(lift),提供了比指针更高级的行为,相当于一种智能指针,他可以根据不同类型的数据结构来实现不同的++,–等操作;(2)迭代器返回的是对象引用而不是对象的值,所以cout只能输出迭代器使

2021-05-17 13:02:03 193

转载 【C++】C/C++内存分配机制(非原创)

C语言在内存中一共分为如下几个区域,分别是:内存栈区: 存放局部变量名;内存堆区: 存放new或者malloc出来的对象;常数区: 存放局部变量或者全局变量的值;静态区: 用于存放全局变量或者静态变量;代码区:二进制代码。知道如上一些内存分配机制,有助于我们理解指针的概念。C/C++不提供垃圾回收机制,因此需要对堆中的数据进行及时销毁,防止内存泄漏,使用free和delete销毁new和malloc申请的堆内存,而栈内存是动态释放。全局变量、静态局部变量保存在全局数据区,初始化的和未初始

2021-05-17 12:59:15 385

原创 【C++】二叉树进阶(二叉搜索树,KV模型)

二叉树进阶(二叉搜索树)一级目录二级目录三级目录一级目录二级目录三级目录

2021-05-17 10:52:12 836 20

原创 【C++】Const修饰指针的三种效果

Const修饰指针的三种效果const int*p=&aint*const p=&aconst int*const p=&aconst int*p=&a当把 const 放最前面的时候,它修饰的就是 *p,那么 *p 就不可变。*p 表示的是指针变量 p 所指向的内存单元里面的内容,此时这个内容不可变。其他的都可变,如 p 中存放的是指向的内存单元的地址,这个地址可变,即 p 的指向可变。但指向谁,谁的内容就不可变。这种用法常见于定义函数的形参。前面学习 printf

2021-05-14 16:05:28 150

原创 【C++】多态

多态多态的基本概况概念多态的定义及实现多态的构成条件虚函数虚函数的重写三级目录多态的基本概况概念多态的概念:通俗来说,就是多种形态,具体点就是去完成某个行为,当不同的对象去完成时会产生出不同的状态多态的定义及实现多态的构成条件必须通过基类的指针或者引用调用虚函数被调用的函数必须是虚函数,且派生类必须对基类的虚函数进行重写满足谁就调用谁虚函数虚函数:即被virtual修饰的类成员函数称为虚函数,可修饰成员函数,使其满足多态条件之一。class Person {public:

2021-05-11 16:29:50 175 6

原创 【网络基础】背景-协议-OSI模型-TCP/IP模型-网络传输-地址管理

网络基础①一级目录二级目录三级目录一级目录二级目录三级目录

2021-05-11 13:52:09 380 8

原创 【C++】继承

继承继承的基本概念继承的概念实例继承定义格式2继承关系和访问限定符切片基本概念及其规则图例继承中的作用域图解+代码实例派生类的默认成员函数友元关系不能继承,也就是说基类友元不能访问子类私有和保护成员基类定义了static静态成员,则整个继承体系里面只有一个这样的成员。无论派生出多少个子类,都只有一个static成员实例 。复杂的菱形继承及菱形虚拟继承基本介绍问题分析及其解决方案虚拟继承(virtual)继承的总结和反思继承的基本概念面向对象三大特性:封装,继承,多态。封装本质是一种更好的管理。相对

2021-05-04 12:54:28 460 10

原创 【LINUX】多线程(线程池,单例模式,线程安全,读者写者模型)

这里写目录标题一级目录二级目录三级目录一级目录二级目录三级目录

2021-04-29 19:10:47 252 1

原创 【LINUX】多线程(生产者消费者模型,POXIS信号量)

多线程生产者消费者模型为何要使用生产者消费者模型生产者消费者模型优点基于BlockingQueue的生产者消费者模型BlockingQueue实战演示线程执行代码BlockQueue创建POXIS信号量基本概念和创建基于环形队列的生产消费模型三级目录生产者消费者模型为何要使用生产者消费者模型生产者消费者模式就是通过一个容器来解决生产者和消费者的强耦合问题。生产者和消费者彼此之间不直接通讯,而通过阻塞队列来进行通讯,所以生产者生产完数据之后不用等待消费者处理,直接扔给阻塞队列,消费者不找生产者要数据,

2021-04-24 13:39:54 320 5

转载 【LINXU】多线程(进程与线程区别,互斥同步)

互斥同步线程线程概念线程优点线程缺点线程异常Linux进程VS线程概念关系线程控制创建线程线程ID及进程地址空间布局线程终止线程等待线程分离互斥背景知识互斥量mutex互斥条件互斥量的接口实例运用(售票系统)互斥量实现原理探究死锁概念死锁四个必要条件避免死锁同步条件变量同步概念与竞态条件条件变量过程描述pthread_cond_wait 需要互斥量线程线程概念在一个程序里的一个执行路线就叫做线程(thread)。更准确的定义是:线程是“一个进程内部的控制序列”一切进程至少都有一个执行线程线程在进

2021-04-19 14:26:37 161 1

原创 【C++】模板进阶

模板进阶非类型模板参数类模板的特化函数模板特化类模板特化非类型模板参数非类型模板参数类模板特化三级目录非类型模板参数模板参数分类类型形参与非类型形参。类型形参即:出现在模板参数列表中,跟在class或者typename之类的参数类型名称。非类型形参,就是用一个常量作为类(函数)模板的一个参数,在类(函数)模板中可将该参数当成常量来使用。template<class T,size_t n>class test{ private: T array[n]; };int m

2021-04-17 15:54:54 183

原创 【C++】浅谈Stack和Queue

Stack和Queuestack的介绍和使用stack介绍stack接口使用stack模拟实现Queue的介绍和使用Queue的介绍Queue的使用Queue模拟实现stack的介绍和使用stack介绍stack是一种容器适配器,专门用在具有后进先出操作的上下文环境中,其删除只能从容器的一端进行元素的插入与提取操作。stack是作为容器适配器被实现的,容器适配器即是对特定类封装作为其底层的容器,并提供一组特定的成员函数来访问其元素,将特定类作为其底层的,元素特定容器的尾部(即栈顶)被压入和弹出。

2021-04-15 13:26:51 108 1

原创 【C++】浅谈Priority_queue和Deque<容器适配器>

priority_queue和deque背景知识(容器适配器)Priority_queue的介绍和使用Priority_queue的介绍Priority_queue的使用priority_queue的模拟实现Deque的介绍和使用Deque的介绍为什么选择deque作为stack和queue的底层默认容器缺陷背景知识(容器适配器)Priority_queue的介绍和使用Priority_queue的介绍优先队列是一种容器适配器,根据严格的弱排序标准,它的第一个元素总是它所包含的元素中最大的。此上

2021-04-14 19:48:56 577 3

原创 【课程设计】六足机器人颜色识别模块python程序

#coding=utf8## 实现功能, 检测摄像头前是哪种颜色的物体,然后根据颜色作出对于动作#import cv2import numpy as npimport pickleimport matplotlib.pyplot as pltimport timeimport mathimport urllibimport socketimport pigpioimport threadingimport signalimport LSC_Client color = 0

2021-04-12 21:24:49 798 1

原创 【LINUX】进程信号时间线描述(产生-判断过程-处理)

进程信号(产生-存储-处理)背景知识信号产生通过终端按键产生信号Core Dump调用系统函数向进程发信号由软件条件产生信号由硬件异常产生信号总结信号判断过程阻塞信号信号其他相关常见概念在内核中的表示sigset_t信号处理信号集操作函数捕捉信号内核如何实现信号的捕捉sigaction背景知识信号是进程之间事件异步通知的一种方式。用kill -l可以查看信号列表每个信号都有一个编号和一个宏定义名称,这些宏定义可以在signal.h中找到,例如其中有定 义 #define SIGINT 2编号

2021-04-12 20:53:40 1079 3

原创 【C++】浅谈list

浅谈listlist的介绍及其使用list介绍list功能使用list的构造llist iterator的使用list capacitylist element accesslist modifierslist的迭代器失效模拟实现list迭代器模拟实现代码vector与list的对比list的介绍及其使用list介绍在STL当中最主要的就是带头双向循环列表list是可以在常数范围内在任意位置进行插入和删除的序列式容器,并且该容器可以前后双向迭代。list的底层是双向链表结构,双向链表中每个元素存

2021-04-08 10:35:21 243 2

原创 【LINUX】进程间通信(管道,共享内存,消息队列,信号量)

进程间通信(管道,共享内存,消息队列,信号量)一级目录二级目录三级目录二级目录三级目录二级目录三级目录二级目录三级目录二级目录一级目录二级目录三级目录二级目录三级目录二级目录三级目录二级目录三级目录二级目录...

2021-04-06 14:29:04 325 3

原创 【C++】浅谈vector(迭代器失效,深浅拷贝)

浅谈vectorvector介绍及其使用vector介绍vector接口使用(实现)三级目录vector介绍及其使用vector介绍vector是表示可变大小数组的序列容器。就像数组一样,vector也采用的连续存储空间来存储元素。也就是意味着可以采用下标对vector的元素进行访问,和数组一样高效。但是又不像数组,它的大小是可以动态改变的,而且它的大小会被容器自动处理。本质讲,vector使用动态分配数组来存储它的元素。当新元素插入时候,这个数组需要被重新分配大小为了增加存储空间。其做法是,

2021-04-05 20:26:41 2868 6

原创 【LINUX】基础IO(文件系统,软硬链接,动静态库)

文件系统,软硬链接,动静态库一级目录二级目录三级目录一级目录二级目录三级目录

2021-03-30 13:19:34 2631 8

原创 【LINUX】Minishell two(添加重定向功能)

Minishell two(追加重定向功能)Minishell two思路讲解代码实现Minishell two思路讲解当我们输入的命令用cmd来存储,然后通过循环来遍历cmd,通过找到> 或者>>来判断是重定向或者追加重定向,思路很简单接下来就是代码的实现。代码实现void redirect(char *cmd){ int fd =-1;//先定义文件描述符 int redirect_count=0;//计量到大于号的数量 char *ptr = cmd;//通过

2021-03-29 21:57:05 143 1

原创 【LINUX】基础IO(重定向)

基础IO重定向基础IO系统文件IO接口介绍文件描述符0 & 1 & 2重定向fd分配规则dup2函数基础IO系统文件IO在我们操作文件的时候除了fopen,fwrite等等一些接口,我们还可以采用系统接口来进行文件访问。接口介绍OPEN#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>int open(const char *pathname, int flags);

2021-03-29 21:03:31 304 3

原创 【趣味知识】假如编程是汉语写的,代码是不是简单多了,一看就懂

这样的代码品一品,奇怪的知识又增加了。。。。#define 等于 =整形 从0加到99(){ 定义 整形 计数器 初始值为零; 定义 整形 临时变量 初始值为零; 反复循环 { 计数器 = 计数器 + 临时变量; 临时变量 自增; }直到(临时变量 大于等于 100); 返回 计数器;}整形 主函数(){ 定义 整形 和 等于 从0加到99(); 输出 和; 返回 零;}...

2021-03-29 18:51:29 177 3

原创 【C++】再论string(string类,深浅拷贝,写时拷贝)

再论string(string类,深浅拷贝)string类模拟实现浅拷贝深拷贝写时拷贝string类部分代码实现string类模拟实现string类:字符串是表示字符序列的类标准的字符串类提供了对此类对象的支持,其接口类似于标准字符容器的接口,但添加了专门用于操作单字节字符字符串的设计特性。string类是使用char(即作为它的字符类型,使用它的默认char_traits和分配器类型(关于模板的更多信息,请参阅basic_string)。string类是basic_string模板类的一个实

2021-03-24 18:39:22 213 1

原创 如何将Github的库一键导入码云(gitee)

如何将Github的库一键导入码云(gitee)梯子导入到码云中注册Gitee找到码云的库并导入Github因为最近Github不是很稳定,上传代码和项目,或者查看开源项目有时候半天都打不开,这里冠希提供了两种选择。梯子梯子是很好用,唯一的缺点就是贵,这里说的是靠谱的梯子,不包含免费又好用的,如果大家有的话可以安排在评论区里。导入到码云中大家都知道Github的服务器不在国内,所以有时候不稳定,而码云不一样了,码云是和Github的区别就是,码云是国内的Git的代码托管网站,所以我们可以直接在

2021-03-24 12:31:06 331

原创 C++包含头文件中<>和““的区别

#include “stdio.h”#include在刚开始学习都会有这种迷惑,有的程序用<>,有的却用"",那么二者到底什么区别呢,什么情况下使用呢?<>和"“表示编译器在搜索头文件时的顺序不同,<>表示从系统目录下开始搜索,然后再搜索PATH环境变量所列出的目录,不搜索当前目录,”“是表示从当前目录开始搜索,然后是系统目录和PATH环境变量所列出的目录。所以,系统头文件一般用<>,用户自己定义的则可以使用”",加快搜索速度。...

2021-03-22 21:18:38 1667

原创 【C++】浅谈string

浅谈stringString类字符串应用C语言中的字符串string类介绍string类常用接口String类字符串应用C语言中的字符串C语言中,字符串是以'\0'结尾的一些字符的集合,为操作方便,C标准库中提供了一些str系列的库函数,但是这些库函数与字符串是分离开的,不太符合OOP的想而且底层空间需要用户自己管理,稍不留神可能还会越界访问。在OJ中,有关字符串的题目基本以string类的形式出现,而且在常规工作中,为了简单、方便、快捷,基本都使用string类,很少有人去使用C库中的字符串操作

2021-03-22 20:27:41 967 3

原创 【LINUX】miniShell(替换函数)

miniShell(替换函数)背景简介代码实现函数与进程背景我们经常在linux上敲各种的命令like this。但我们知道底层是如何识别执行的吗?简介用下图的时间轴来表示事件的发生次序。其中时间从左向右。shell由标识为sh的方块代表,它随着时间的流逝从左向右移动。shell从用户读入字符串"ls"。shell建立一个新的进程,然后在那个进程中运行ls程序并等待那个进程结束。shell读取一行输入,建立一个新的进程,在这个·进程中运行程序并等待这个进程结束。所以要写一个shell,需

2021-03-21 18:30:30 2163 5

转载 【C++】浅谈STL

STL简介什么是STLSTL与C++标准库的关系STL的版本原始版本P. J版本RW版本SGI版本STL的六大容器分类STL的重要性如何学习STLSTL的缺陷什么是STLSTL(Standard Template Library)标准模板库的英文缩写,包含有计算机科学领域常用的基本数据结构和基本算法。STL与C++标准库的关系STL的版本原始版本Alexander Stepanov、Meng Lee 在惠普实验室完成的原始版本,本着开源精神,他们声明允许任何人任意运用、拷贝、修改、传播、

2021-03-19 17:44:59 191

原创 【LINUX】进程创建-进程等待-进程替换-进程终止

进程的基本流程进程创建fork初识写时拷贝进程等待进程等待必要性进程等待的方法(wait和waitpid)waitwaitpid获取进程status进程替换进程替换原理进程替换函数进程替换函数命名理解进程终止进程常见退出方法exit退出和_exit退出retrun退出三级目录进程创建fork初识在linux中fork函数时非常重要的函数,它从已存在进程中创建一个新进程。新进程为子进程,而原进程为父进程。pid_t fork(void);返回值:自进程中返回0,父进程返回子进程id,出错返回-

2021-03-17 15:30:04 1033 2

原创 【C++】模板初阶

模板初阶泛型模板函数模板函数模板概念函数模板格式函数模板的实例化函数模板参数的匹配原则类模板类模板的定义格式类模板的实例化泛型模板我们先看看以下的代码:void Swap(int& left, int& right){ int temp = left; left = right; right = temp;}void Swap(double& left, double& right){ double temp = left; left = right;

2021-03-13 09:59:21 97

原创 【C++】C/C++内存管理

C/C++内存管理C/C++内存分布简介及基本概念:题目案例C语言中动态内存管理方式C语言malloc/calloc/realloc的区别?C++new和delete操作自定义类型operator new与operator delete函数new和delete的实现原理常见面试题( malloc/free和new/delete的区别)C/C++内存分布我们先观察一下这张图在虚拟地址当中,分为了几个区段,分别是代码段 数据段 堆 栈 等一些区域,其中使用最为频繁的就是我列出的四个区域。简介及基本概念:

2021-03-13 09:34:56 196

Working-Time.xlsx

Working-Time

2021-11-07

Linux-0.11code-master.zip

LINUX0.11内核源码 真男人就读源码

2021-02-01

Linux贪吃蛇游戏项目(C语言)

用C语言写的可在ARM上跑的可触摸有界面的贪吃蛇游戏项目代码有注释

2021-01-07

GitHub注册手册

GitHub注册手册为没有注册过或不知道如何注册的小白们的学习资源一起分享一起快乐,每天Github每天写博客

2020-10-29

空空如也

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

TA关注的人

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