自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 复习——C++

输出*p,为abc;输出p,默认为char*类型,输出为abc,因为字符串末尾自带\0,不输出乱码;输出(void*)类型,将指针p强制转换为void*类型,cout会输出该指针的值(即字符串常量"abc"的首地址)输出*p,是输出p的空间内的值;输出p,由于默认规则,会输出p是char*类型,cout会将其解释为C风格字符串,输出字符串,同时,由于没有‘\0’,会一直向后输出,因此输出为a加乱码。取地址,把b的地址给p。

2025-06-04 18:24:19 195

原创 仿腾讯会议——优化:多条tcp连接

摘要:系统功能扩展主要包括三个方面:1) 新增用户信息数据结构;2) 添加视频音频注册的结构体;3) 实现了视频音频注册功能函数。这些改进完善了系统的用户管理和多媒体处理能力。

2025-05-30 11:05:32 140

原创 力扣——哈希——1.两数之和

如果不存在,因为这是数组内的第i个值,所以哈希表的值就是i,索引是具体的值,如hashtable[nums[i]]=i;,里面的i是在查看nums数组内的第i个值。查询标准值减去当前正在查的值的差在哈希表中是否存在,如果存在,说明这一对就是要找的值。find——>ite->first—>键值;ite->second—>索引。使用哈希表,遍历map表。

2025-05-28 16:51:33 237

原创 仿腾讯会议——视频发送接收

本文介绍了多媒体处理模块的开发流程,主要包括音频和视频功能的实现。首先,添加音频模块并完成初始化,随后处理视频相关功能,包括视频帧的刷新、等比例缩放、新建视频对象等。在中介者模式中定义了发送视频帧的函数,并实现了视频的开启、关闭及信号槽绑定。此外,完成了视频帧的压缩与发送功能,确保数据传输效率。图片刷新功能也得到完善,支持根据ID刷新图片显示。最后,实现了加入房间时的音频和视频初始化,以及退出房间时的视频关闭功能。整个模块的开发注重功能完整性和性能优化。

2025-05-22 11:48:56 254

原创 仿腾讯会议——添加音频

本文介绍了音频处理功能的实现步骤。首先,通过定义信号和信号槽连接,实现了音频的开启、关闭、开始和暂停功能。其次,初始化音频视频资源,并为每个用户创建独立的音频播放对象,确保跨线程操作时资源不被立即回收。音频处理部分包括定义和实现音频处理逻辑,确保音频数据的正确传输和处理。在用户离开房间或退出会议时,系统会自动去除对应的音频资源并回收相关资源,避免内存泄漏和资源浪费。整个流程通过对象ba发送音频数据,确保跨线程操作的稳定性。

2025-05-19 18:52:25 631

原创 仿腾讯会议——音频服务器部分

本文介绍了音频处理系统的设计与实现流程。首先,中介者模块定义了处理音频帧的函数接口,并实现了具体的音频帧处理逻辑。接着,系统通过绑定函数映射,将中介者模块与服务器模块进行关联。服务器模块随后定义了音频处理的高层函数接口,并基于中介者模块的功能实现了具体的音频处理逻辑。整个设计采用模块化思想,通过中介者模式解耦了音频处理的不同层次,提高了系统的可维护性和扩展性。

2025-05-19 13:26:01 537

原创 仿腾讯会议——退出房间

本文摘要:客户端方面,主要实现了绘图成员的添加、视频重绘事件的处理、关闭函数的定义与实现,以及清空列表功能。同时,在房间内添加了用户映射表,并处理了中介者退出、用户移除、展示界面离开及房间请求等操作。服务端方面,未提供具体实现细节,但应确保与客户端的通信和数据同步。整体上,文章围绕客户端功能扩展与优化展开,旨在提升用户体验和系统稳定性。

2025-05-18 19:51:17 418

原创 仿腾讯会议——房间界面&用户设置

本文概述了一个软件开发项目的关键步骤,主要涉及用户界面和功能的实现。首先,进行了房间界面的基本设置,随后添加了新的设计师界面类,以增强用户体验。接着,设置了用户配置选项,并新增了类以管理房间标题。此外,还配置了控件,修改了用户展示的头文件,并设置了用户名。在客户端,添加了用户展示功能,最后进行了数据测试以确保所有功能的正确性和稳定性。这些步骤共同构成了一个完整的用户界面和功能开发流程。

2025-05-18 16:25:44 531

原创 项目班——0513——短信验证

1。

2025-05-16 09:27:24 92

原创 项目班——0510——JSON网络封装

1。

2025-05-16 09:14:36 140

原创 仿腾讯会议——创建房间&加入房间

添加房间界面设置协议映射。

2025-05-06 10:20:14 166

原创 仿腾讯会议——主界面设计&创建房间&加入房间客户端实现

9、服务器定义创建和进入房间函数

2025-05-02 20:28:25 438

原创 仿腾讯会议——注册登录实现

2025-05-02 17:17:07 308

原创 仿腾讯会议——服务器结构讲解

阻塞和非阻塞是通过套接字来实现的,所以不能发送和接收的阻塞状态不同。

2025-05-01 16:42:47 256

原创 力扣刷题总表

翻转链表(倒序输出链表)

2025-04-29 21:14:57 268

原创 力扣——206.反转链表&&倒序输出链表

更新前一个节点和当前节点——前一个节点设为当前节点,当前节点设为下一个节点。改变当前节点的指向——将当前节点的下一个设为指向前一个节点。先给下一个节点赋值为——当前节点的下一个。设三个指针,前后两个指针都为空,当前指针为输入的头指针。开始循环——判断条件为当前节点不为空。

2025-04-29 20:48:19 316

原创 仿腾讯会议——服务器注释

进入mysql——>mysql -u root -p。展示所有数据库——>show databases;使用某个数据库——>use WeChat。展示数据库——>show tables;修改配置文件后,将编码改为utf8。打开一个新终端,打开文件。

2025-04-29 20:07:42 466

原创 仿腾信会议——密码MD5

原函数补充后函数定义函数

2025-04-29 20:02:38 314

原创 仿腾讯会议——注册登录UI

原登录信息提交函数框架校验输入不为空校验手机号校验密码。

2025-04-29 18:31:35 413

原创 项目班——0426——智能指针

2025-04-27 21:34:51 114

原创 项目班——0422——日志

2025-04-27 20:30:34 148

原创 项目班——0419——chrono时间库

C++11时间库chrono源自于boost1.时间间隔 duration2.时间点 timepoint3.时钟 clock系统时钟system_clock,稳定时钟steady_clock,高精度时钟high_resolution_clock。

2025-04-24 18:06:39 369

原创 kaggle网站使用教程

选择本地文件在这里可以看到上传的数据集。

2025-04-23 15:27:40 302

原创 项目班——0419——function&&bind&&生产消费

好处:统一接口。

2025-04-21 21:18:27 213

原创 项目班——0415——条件变量&&基于条件变量的多线程同步实例

与互斥锁组合使用的东西,条件变量包含头文件#include<condition_variable>condition_variable初始化不用单独调用函数实现,在构造里实现回收同理,在析构里实现wait等——wait_for wait_util可以防止条件,以及时间,避免死锁notify通知——notify_one notify_all可以结合互斥锁,实现线程同步,完成一些如生产者、消费者模型这样的功能1.涉及到的概念:有若干生产者,若干消费者,同步队列(阻塞队列,环形队列),

2025-04-21 14:29:15 711

原创 项目班——0415——lock_guard

C++11锁守护者。

2025-04-21 10:57:23 244

原创 仿腾讯会议——设置配置文件

运行出现设置的IP, 找到运行的配置文件,修改成自己当前的ip。再次运行,连接迅速,并且出现接收回复,输出当前IP。3、修改配置文件内的ip地址。2、实现初始化配置的函数。将函数运行条件改成非。

2025-04-18 12:08:34 220

原创 仿腾讯会议——网络嵌入

在loginDialog的头文件内添加声明登录的信号在源文件内完成函数。

2025-04-18 11:56:35 858

原创 仿腾讯会议——界面关闭功能实现

在WeChatDialog.cpp内实现closeEvent函数。原本的函数是先创建一个程序,然后在主程序内创建窗口。#include<QMessageBox>引入窗口。在Ckernel.cpp内实现信号和槽函数的绑定。添加一个控制类Ckernel。将其修改为在控制类内创建界面。

2025-04-18 11:47:51 372

原创 项目班——0412——C++多线程

arg1是可调用对象(函数指针,仿函数,lambda表达式,function&bind),后面是参数列表注:arg1可以是类中的成员函数(普通的),arg2此时就要传对象的地址。

2025-04-18 11:39:01 328

原创 项目班——0412——lambda表达式&&QThread和信号槽区别

每次使用时,都去上面定义一个函数比较麻烦,因此可以使用lambda表达式定义一个匿名函数,在函数定义里面完成另一个函数的定义,简化开发流程。因为插入排序能够保持稳定性,其次部分有序时,可以有一个最优的时间复杂度O(n)如果想实现从大到小的排序,comp(a,b)为真,保持顺序,所以是从大到小的。为引用捕获是多余的,会导致重复捕获,因此语法不允许。为值捕获是多余的,会导致重复捕获,因此语法不允许。2、数量较大时,使用快排。已经表示默认以引用捕获所有外部变量,包括。已经表示默认以值捕获所有外部变量,包括。

2025-04-14 20:56:54 465

原创 项目班——0408——qt的多线程开发

可能在接受某个信号时被阻塞住了,不能接受其他事件了,比如刚打开项目就无响应,可能是连接服务器时ip地址写错了,或者连不上服务器。如果connect函数写了两遍,会导致槽函数执行两遍,如果加上第五个参数,就可以保证只执行一遍。pb_test是在主线程内创建的,在自己定义的线程内将其隐藏,会触发隐藏事件,事件循环会出错。发送信号的对象:必须是Q_OBJECT的子类,类的定义中,必须包含Q_OBJECT宏。connect参数:发送对象地址,发送的信号,接收者对象地址,处理槽函数地址,//获取id,通过这个获取。

2025-04-14 19:53:52 1344

原创 笔试面试——逻辑题

小明走进房间,发现所有灯全熄着,;3. S先生,P先生,Q先生他们知道桌子的抽屉里面有16张扑克牌,红桃A,Q,4 , 黑桃 J,8,4,2,7,3 草花 K,Q,5,4,6 方块 A,5。活动内容除了吃喝玩之外。8.1,3,9,10,经过(1+10)*3-9即可等于24,那么,1,7,8,8,10如何利用+-*/等于24____________________.。8. 套马,有25匹马,每次只能5匹马进行比赛,比赛只能得到5匹马之间的快慢程度,而不是速度,请问,最少要比几次,才能获得最快的前5匹马()

2025-02-12 19:21:20 483

原创 C++习题1——24、30—

这是不正确的,因为友元函数不是类的成员,这种改动会改变类的接口,导致二进制不兼容__declspec(dllexport) 是Microsoft Visual C++中的一个特定于编译器的扩展,它用于在编译时指示编译器,随后的声明或定义应该被导出,使其在生成的动态链接库(DLL)中对外部可见。是错误的,因为它的语法不正确。所以输出为(1)temp的无参构造(5)类型转换,形参的有参构造(2)返回值(临时对象)的拷贝构造(4)形参的回收(3)临时对象给temp赋值(4)临时对象的回收(4)temp的回收。

2025-02-12 19:14:12 743

原创 C++习题1——1—11

7、两个互相独立的类classA和classB,都各自定义了非静态的公有成员函数PublicFunc()和非静态的私有成员函数PrivateFunc();D正确 多继承:一个子类存在多个父类,子类同时含有多个父类的特性,子类可能存在多个虚表,派生类自己的虚函数会被添加到第一个直接基类的虚表中。B 父类指针指向子类对象,如果是虚函数,就是子类的,不是,就是父类的。A)类中的成员默认是private的,但是可以声明为public。成员函数在A类里,因此A类里的都可以用,B类里的只能用公有的。

2025-02-11 20:55:45 799

原创 C语言面试题1——1—20

strcpy(a,b),如果b的长度大于a能存的空间长度,就会溢出,也就是这个函数没有识别目标缓冲区长度的功能。大小端避免方式:识别大小端是否一致,写判断大小端的函数,如果大小端不一致,写一个转换大小端的函数,进行转换。如果在外面定义一个全局整型变量g_val,想在main中再定义一个,先使用{},int+变量名再次定义。(3)使用do{ }while(0);PFUN为指向函数的指针类型的新名称,PFUN为int(*) (int,int)的别名。

2025-02-10 16:10:20 917

原创 Leetcode——链表:143.重排链表

设置循环处理全部链表中的节点,将当前元素的后继改为原链表的前驱(此时当前元素与原链表的后继断开,造成后继链表中全部节点丢失)更新三个变量,处理下一个节点,将当前元素变为prev,将next改为当前元素,将next向后移动一个节点。找到中间位置,将后半部分的链表翻转,得到新链表,将后半部分链表的节点交替插入原链表。先将第二个链表的头节点插入第一个链表中,尾向后移动,第二个链表的头节点向后移动。当移动到最后一个元素时,把当前节点直接插入到原链表的头,更新并返回新链表的头。传出值:后半部分链表的头节点。

2025-01-17 16:06:48 777

原创 数据结构与算法——1204—递归&&分治法

使用滚动变量,保存当前计算结果和前两项值(1)R=A+B(2)更新计算对象,A=B,B=R。

2024-12-06 15:37:29 372

原创 数据结构与算法——1202—排序&&递归

如果有序元素比当前保存的元素大,那么说明当前保存的元素应该再向前比较,有序元素应该向后移动一个,再重复当前步骤。如果遍历有序元素的下标到达-1的位置上,应该把当前元素放在有序元素数组下标为0的位置上。(2)从右向左遍历有序数组,比较有序元素和当前元素的大小关系。插入排序是一个元素从无序数组向有序数组中插入的过程。4、计算结果会沿着原路依次返回。如果有序元素小,此次遍历结束。1、解决方案完全相同。3、必须有明确的终点。

2024-12-06 15:07:34 267

原创 数据结构与算法——1129—排序

抽象关系,信息的存储运算、描述逻辑。

2024-12-02 18:08:16 254

C++-面试题02-Second

C++-面试题02-Second

2024-07-24

Arduino实战之水位传感器

Arduino实战之水位传感器

2024-07-21

C++-面试题01-无答案版

C++-面试题01-无答案版

2024-07-21

Arduino实战之火焰传感器

Arduino实战之火焰传感器

2024-07-21

空空如也

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

TA关注的人

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