自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 基于gsoap的onvif抓图

搭建基于onvif的gsoap框架

2024-04-13 23:28:25 586

原创 C++this指针与常函数、拷贝构造函数和赋值函数、静态成员

​ 在成员函数的参数列表的末尾(小括号后面),用const修饰,这种成员就叫常函数。class 类名{public:// 常函数返回值 函数名(参数列表) const{}};​ 在定义结构、联合、类对象时,使用const修饰,这种对象就叫常对象。const 类名 对象名;const 类名* 指针变量 = new 类名;是一种特殊构造函数,如果没有显式的实现,编译器就会自动生成。class 类名{public:// 拷贝构造类名(类名& that){}};

2022-10-20 19:27:17 602 2

原创 C++名字空间、空间合并与空间嵌套、面向过程与面向对、类和对象、类的声明与实现分开、构造函数与析构函数

​ 在C语言中定义的全局变量、函数、结构、联合、枚举、枚举值都在全局作用下,所以当项目比较庞大时,非常可能造成命名冲突,所以C++中选择把全局作用域进行拆分成子作用域进行管理,这些子作用域就是作名字空间。​ 把抽象结果(利用面向对象的思维模式,思考、观察出的结果),使用用C++的语法封装出一种类似结构的自定义数据类型(复合数据类型)。​ 使用设计好的类这种数据类型,定义出的类变量在面向对象编程语言中被称为对象,创建类对象的行为也被称为实例休对象。{int id;short age;

2022-10-19 10:55:30 377

原创 C++基本概念、与c语言的区别,结构体、联合、枚举的区别,函数的区别、内存管理的区别

​ 引用是一种取名机制,它可以给变量重新取一新的名字,所以引用也叫别名。

2022-10-18 18:46:28 414

原创 线程的发展史,调度策略、适用范围、特点,进程与线程的区别、线程的属性、posix线程库

​ 线程是操作系统能够进行运算执行的最小单位,它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。​ 如果man手册查不到线程的相关函数,安装完整版的gnu手册 sudo apt-get install gliba-doc​ POSIX线程(POSIX Threads,常被缩写为pthread)是POSIX的线程标准,定义了创建和操纵线程的一套API。

2022-10-03 15:19:52 426

原创 UNIX系统介绍 、Linux系统介绍、GNU编译工具、环境变量的主要作用和配置方法,错误处理、库文件的制作与使用以及优缺点

系统环境:库、环境变量、编译器、系统特性内存管理:操作系统是如何管理内存的文件系统:文件读写、目录读写、文件属性、文件管理进程管理:多个程序同时运行,解决复杂问题信号处理:操作系统与程序之间一种通信机制进程通信:多个进程如何交互数据,这是它们协同工作的基础线程管理:就是让一个程序同时做若干件事情线程同步:让多个线程同时工作时能够不互相破坏、干扰。

2022-09-19 20:27:05 184

原创 系统调用、文件描述符、文件的创建与打开、文件读写、系统IO和标准IO、文件位置指针相关

​ 由操作系统向应用程序提供的程序接口信息,也叫应用编程接口(Application Programming Interface,API),它是是应用程序与操作系统之间交互的接口。​ 操作系统的主要功能是为管理硬件资源和为应用程序开发人员提供良好的环境,使应用程序具有更好的兼容性,为了达到这个目的,内核提供了一系列具备了一定功能的内核函数,通过一组称为系统调用(system call)的接口呈现给用户。

2022-09-05 19:25:58 469

原创 内存管理的层次关系、进程映像、虚拟内存、内存映射、Linux系统内存管理API

大小,只有操作系统才能使用,里面存储着操作系统为该进程服务或者与该进程交互所需要的相关数据,内核空间由操作系统内核进行管理,不会随进程切换而改变。接分配给进程,这样就会面临严重的安全问题,进程可以根据自己获取到的内存地址,对指针进行运算。就是操作系统给进程画的饼,当进程真的需要使用内存来存储数据时,操作系统会把一部分的虚拟内存。行的程序叫进程,一个程序可以同时被执行多次,形成多个进程,每个进程互相独立,由操作系统管。共享映射,映射的内容对其它进程是可见的,对共享区的写入,相当于输出到文件。

2022-09-03 15:28:11 756

原创 UNIX系统和Linux系统介绍,GNU编译工具的使用,静态库和动态库的制作和使用以及优缺点

系统环境:库、环境变量、编译器、系统特性内存管理:操作系统是如何管理内存的文件系统:文件读写、目录读写、文件属性、文件管理进程管理:多个程序同时运行,解决复杂问题信号处理:操作系统与程序之间一种通信机制进程通信:多个进程如何交互数据,这是它们协同工作的基础线程管理:就是让一个程序同时做若干件事情线程同步:让多个线程同时工作时能够不互相破坏、干扰。

2022-09-02 19:00:31 225

原创 查找算法:顺序查找、二分查找、索引查找、分块查找、哈希表查找的c语言代码实现以及优缺点

​ 在一个数据序列中,查找某个数据是否存在或存在的位置,在实际开发过程中使用的频率非常高,例如对数据常见的操作有增、删、改、查,增加数据时需要查询新增加的数据是否重复,删除数据时需要先查询到数据所在位置再删除,修改数据时也需要先查询到被修改的数据在什么位置,查找算法在编程中重要性排列在第一位。

2022-08-23 18:31:26 1834 1

原创 什么是算法以及算法的重要特性和设计的要求,常见的时间复杂度和空间复杂度

​ 对特定问题的求解步骤的一种描述,它是指令的有限序列,其中每一条指令表示一个或多个操作。

2022-08-23 18:25:26 421

原创 赫夫曼树介绍、赫夫曼树的性质、赫夫曼编码、赫夫曼树与赫夫曼编码的应用

​ 赫夫曼树是一种带权重的树,它的结点中有一项数据是权重信息,根据结点中的权重生成一棵二叉树,结点的权生越大,离根结点就越近。

2022-08-16 20:40:27 270 1

原创 线索二叉树的介绍、创建和添加线索的方法,堆树的介绍、存储和创建以及实现方法

​ 我们在遍历二叉树时会得到一个线性的序列结果,但遍历的过程是非线性的(函数递归),该过程比较耗时,我们可以借助结点中的空的指针,增加一些线索,使用二叉树能够使用循环语句进行遍历,提高二叉树遍历的速度。​ 大根堆:根结点的值比它的左右子树都要大,同时它的左右子树也遵循这项规则,也就是说一棵树的根结点中存储的是这棵树中的最大值,这种完全二叉树叫大根堆。​ 小根堆:根结点的值比它的左右子树都要小,同时它的左右子树也遵循这项规则,也就是说一棵树的根结点中存储的是这棵树中的最小值,这种完全二叉树叫小根堆。...

2022-08-15 19:18:56 246

原创 树的介绍、树的定义和基本术语、二叉树的定义和性质、二叉树的顺序表示与实现和链式表示与实现以及树的遍历方法以及两种创建方式

​ 树是一种非线性的数据结构,是以分支关系定义的层次结构,比如人类社会中的族谱、及各种机制、组织的关系都可以用树形象的表示。重点学习二叉树的存储和相关操作,还要讨论树、森林、二叉树的转换关系。**树:**是n个结点的有限集,当0==n时称为空树,我们不讨论空树。**根结点:**树的最顶层的结点,一棵树有且仅有一个。**子树:**一棵树除根结点外,剩余的是若干个互不相交的有限集,每一个集合本身又是棵树,称称为根的子树。......

2022-08-09 19:50:49 334

原创 串的介绍以及基本的功能与算法实现,封装成字符串的意义以及子串查询的算法

​ 串型结构就是由若干个类型相同的元素组成的数据结构,末尾有一个结束标志,字符串就是由字符元素组成的串型结构,'\0’是它的结束标志,使用它可以存储单词、文章、汉字等文字信息。​ 随着计算机和编程语言的发展,字符串在程序中使用的越来越多,字符串就简称串,对它的操作都是对串里面所有字符整体操作,以’\0’为结束标志,如果字符串的末尾没有’\0’,可能会产生乱码、段错误、脏数据等问题。...

2022-08-08 18:58:56 90

原创 栈与队列的基本介绍和创建、销毁、出入、计算元素数量、查看元素等功能的c语言实现,以及栈的压入、弹出序列判断,栈结构的链式表示与实现

栈和队列是两种重要的线性结构,从数据结构来看,他们也是线性表,其特殊性在于它们的基本操作是线性表的子集,也就中,也被称为限定性的数据结构。但从数据类型角度来看,它们是和线性表不大相同,有些时候它们被当作一种管理数据的规则。...

2022-08-04 20:58:12 532

原创 简单的线性表的顺序表示实现,以及线性表的链式表示和实现、带头节点的单向链表,C语言简单实现一些基本功能

线性表是n个数据元素的有限序列,同一线性表中的元素必定具有相同特性,相阾的数据元素之间存在着序偶关系。线性表中元素的个数n(n>=0)定义为线性表的长度,0==n时称为空表,在非空表中每个数据元素都有一个确定的位置(下标)。线性表是一个相当灵活的数据结构,它的长度可根据需要增长或缩短。......

2022-08-02 19:21:19 282

原创 什么是数据结构以及数据结构的存储方式、逻辑结构和存储结构的关系、数据结构的运算、逻辑结构的四种基本类型

数据结构不是研究数值计算的这些是数学家应该研究的问题,它是研究计算机存储、组织数据的方式问题的学科,数据结构会影响算法的效率,合适的数据结构可以带来更高的运行或存储效率。1968年,美国的高纳德(Donald E. Knuth)教授《基本算法》,开创了数据结构课程体系的先河。程序设计 = 数据结构 + 算法凭借一句话获得图灵奖的Pascal之父——Nicklaus Wirth,让他获得图灵奖的这句话就是他提出的著名公式:“算法+数据结构=程序”。...

2022-08-02 19:13:15 2133

原创 makefile以及通用的makefile脚本、C语言文件操作以及加密相关,开源项目学习方法,main的参数

Makefile脚本集合了程序的编译指令的文件,make是一个命令工具,当执行make命令时,它会自动读取MakeFile中的编译指令并执行,会自动完成整个项目的自动化编译工作。项目中如果有很多.c文件,他们的编译指令会有很多,需要的编译时间比较长,依赖关系非常复杂。当项目中的.h文件被修改时,.c文件,我们无法人为分辨出哪些文件需要重新编译,只能全部重新编译一下,但这项操作非常耗时。所以使用makefile脚本编译项目(按重要性排序)1、节约时间2、记录文件之间的依赖关系。............

2022-07-19 20:12:18 1101

原创 条件编译、版本环境判断、宏、头文件、以及多文件编译相关

专门用于调试程序的宏函数,这种宏函数在程序测试、调试、试运行阶段执行,在程序正式上限阶段不执行。一些操作提示,如xxx操作成功,xxx操作失败,xxx不存在,分配内存的记录、释放内存的记录,这类型消息开发人员、测试人员需要看到,但用户不需要看到{}#elsefree(ptr);\\}while(0)#else%sfunc%sline%d\32m");\\\}while(0)#else。...

2022-07-18 20:32:04 692

原创 成员指针、柔性数组、联合、大小端系统的优缺点以及使用

当结构的某一项成员数量不固定,我可以在结构的末尾定义一个长度为零的数组,这种数组就叫柔性数组,在为结构变量分配内存时多分配一些,多分配的内存就归柔性数组使用。注意不管结构变量如果定义的,必须给成员指针单独分配堆内存,否则成员指针就是野指针,在结构变量使用完毕后还必须单独释放,否则就会产生内存泄漏。3、柔性数组所使用内存块与结构变量是一体的,与结构变量的内存一起分配一起释放,因此也不容易产生内存泄漏、内存碎片。联合的使用语法与结构一模一样,联合与结构的区别,联合的所有成员共用一块内存。......

2022-07-14 19:28:15 193 1

原创 ubuntu系统下简单的用户管理系统的实现,以及字符输入相关问题

今天写了一个简单的用户管理系统,系统非常简单,但是还是写下来记录一下,之后有机会再改进一下当然在这个过程中还是遇到了问题1、在开始编写和测试这两个函数出现了一些问题在测试的时候程序直接跳过了输入用户名的get_str,到了确认密码的阶段。这个是因为在获取进入注册函数的命令的时候使用了scanf影响了后续的输入这里涉及到了字符输入相关的知识,记录在下面字符的输入方法1方法2注意如果先输入数值型数据后输入字符型数据,输入数值型数据时会残留一个‘’或者‘\n’.影响后续字符的输入。...

2022-07-14 19:05:38 324 1

空空如也

空空如也

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

TA关注的人

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