算法的时间复杂度和空间复杂度前言算法的时间复杂度和空间复杂度是评估算法性能的两个重要指标。时间复杂度主要关注算法执行过程中所需的时间随输入规模的变化情况,而空间复杂度则关注算法执行过程中所需的最大存储空间或内存空间。对于时间复杂度,它通常表示为一个大O表示法,如O(n)、O(n^2)、O(log n)等,其中n代表输入规模的大小。一个优秀的算法应该具有较低的 ......
146
0
0
2024-07-02
计算机二级C语言考前复习资料(详细版)前言计算机二级C语言考试是许多计算机科学专业学生及编程爱好者的必经之路。它不仅是对基础编程知识的检验,更是对逻辑思维和问题解决能力的挑战。通过这门考试,考生需要掌握C语言的基本语法、数据类型、控制结构、函数、数组、指针以及文件操作等核心内容。为了顺利通过计算机二级C语言考试,考生首先需要系统地学习C语言的基础知识。从变量 ......
147
0
0
2024-07-01
Qt 是一个跨平台C++图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍如何运用QUdpSocket组件实现基于UDP的组播通信。组播是一种一对多的通信方式,允许一个发送者将数据报文发送到多个接收者,这些接收者通过共享相同的组播IP地址进行通信。 ......
145
0
0
2024-06-28
C语言通讯录功能的实现一、项目需求:我们需要一个通讯录,可以用来存储1000个人的信息,每个人的信息包括:姓名、性别、年龄、电话、住址。并且在通讯录中要求实现下述功能:添加联系人信息删除指定联系人信息查找指定联系人信息修改指定联系人信息显示所有联系人信息以名字排序所有联系人二、模块化代码在代码编辑中,为了避免代码过于冗长,也为了便于后续功能的修改。我们一般将 ......
157
0
0
2024-06-20
Qt 是一个跨平台C++图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍如何运用QUdpSocket组件实现基于UDP的网络通信功能。与QTcpSocket组件功能类似,QUdpSocket组件是 Qt 中用于实现用户数据报协议(UDP,User ......
161
0
0
2024-06-19
在虚函数的继承中,派生类继承了基类的虚函数的接口,即函数的声明。派生类必须重新实现基类的虚函数,并且可以通过多态性实现运行时的动态绑定。这种继承关系强调了对函数接口的统一定义,为实现多态提供了基础。4.虚函数原理4.1虚函数表(vtable)class Base { public: virtual void Func1() { ......
159
0
0
2024-06-13
🌞一、项目介绍项目简介:我们的项目是在linux操作系统下基于OpenCV和Socket的人脸识别系统。 客户端: 用于向服务器发送摄像头捕获的图像数据。 服务端: 在接收客户端发送的图像数据后,使用人脸检测算法检测图像中的人脸,并使用三种不同的人脸识别模型对检测到的人脸进行识别。然后,根据识别结果,在图像中绘制相应的标签(人名)以表示识别的结果。在绘制人脸 ......
160
0
0
2024-06-12
之前结束了类与对象:今天进行下面部分内容的学习1.C/C++内存分布具体说明:栈又叫堆栈–非静态局部变量/函数参数/返回值等等,栈是向下增长的。栈上的内存分配和释放是通过编译器生成的代码来管理的,通常是通过在函数退出时进行清理来实现的内存映射段是高效的I/O映射方式,用于装载一个共享的动态内存库。用户可使用系统接口创建共享共享内存,做进程间通信堆用于程序运行 ......
169
0
0
2024-05-22
Qt 是一个跨平台C++图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍如何运用QJson组件的实现对JSON文本的灵活解析功能。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它易于人阅读和编写,也易 ......
157
0
0
2024-05-21
(图片来源于网络)一、set1.1 set特点介绍set的介绍 C++中的set是一个STL容器,它是一个自动排序的集合(即将数据存入set,我们通过迭代器顺序访问出来时,数据是有序的),内部使用红黑树(后面会讲解)来实现。它的特点是不允许重复元素,而且插入元素时自动进行排序。set容器的特点存入set后数据有序: set是按照一定次序存储元素的容器,迭代器 ......
165
0
0
2024-05-18
一、为什么要有动态内存分配​我们已经掌握的内存开辟方式有:int val = 20;//在栈空间上开辟四个字节​ char arr[10] = {0};//在栈空间上开辟10个字节的连续空间​但是上述的开辟空间的方式有两个特点: • 空间开辟大小是固定的。 • 数组在申明的时候,必须指定数组的长度,数组空间一旦确定了大小不能调整int main() { in ......
205
0
0
2024-05-14
前言在上一篇文章我们学习类和对象的过程中,我们不是写了一个日期类嘛。 但是我们之前实现的日期类并不是很完整,我们只是借助它来帮大家学习类和对象的知识。 那这篇文章呢,我们就在之前的基础上,再增添一些功能,实现一个比较完整的日期类,作为一个练习,来帮助我们更好的理解我们之前学过的知识。这是我们之前一起写的不太完整的日期类:代码语言:javascript复制 ......
208
0
0
2024-05-04
这篇文章呢我们接着上一篇的内容,继续C++类和对象的学习。1. 类的6个默认成员函数通过上一篇文章的学习,我们知道如果一个类中没有成员变量,也没有成员函数,啥也没有,那我们把它叫做空类。 即如果一个类中什么成员都没有,简称为空类。比如:代码语言:javascript复制class Date { }; 那现在问大家一个问题:空类中真的什么都没有吗?🆗 ......
152
0
0
2024-05-04
​这篇文章我们开始学习C++中的类和对象。1. 面向过程和面向对象初步认识我们之前学的C语言是面向过程的,关注的是过程,分析出求解问题的步骤,通过函数调用逐步解决问题。而C++是基于面向对象的,关注的是对象,将一件事情拆分成不同的对象,靠对象之间的交互完成。2.类的引入我们之前在C语言中学过结构体:但是C语言中的结构体只能定义变量,比如:对于这个结构体来说: ......
169
0
0
2024-05-04
前言预处理是C语言的一个重要功能,它由预处理程序负责完成。当对一个源文件进行编译时,系统将自动引用预处理程序对源程序中的预处理部分作处理,处理完毕自动进入对源程序的编译。C语言提供多种预处理功能,主要处理#开始的预编译指令,如宏定义(#define)、文件包含(#include)、条件编译(#ifdef)等。合理使用预处理功能编写的程序便于阅读、修改、移植和 ......
152
0
0
2024-05-04