- 博客(56)
- 收藏
- 关注
原创 C++ 11
简单来说:A运行出一个结果,通过临时变量B作为返回值给C使用,此时B是临时变量,它充当了传递的作用之后就会析构释放内存(注意,此时B是占用了一块空间用来存放需要它返回给C的数据的),这个时候C就需要再创建一个对象分配空间来拷贝B返回的数据,这个时候换一种方法,不额外给C分配空间了,直接让C接手临时变量(右值)的空间,也就是说C和B的资源的地址是同一个地址,这样既不用给C分配空间又不用释放B的空间,这个时候就节约了开销,右值引用之后也可以对这个变量进行修改等操作。a和b都是左值,只不过b可以当做右值使用。
2024-09-21 20:06:47 212
原创 C++异常(基本知识)、C++模板类(基本知识)
异常就是程序运行过程中出现的问题。“异常”问题并不经常出现(按道理来说我们写好的正常的程序是不应该频繁出现异常的);异常处理技术使得我们可以写程序解决出现的异常问题。很多情况下,处理异常就能使程序想没发生过问题一样继续执行(比如:异常不处理或者处理的很差使用过程中发生崩溃、闪退等问题,处理的好的话就可能我们都不知道有异常,程序自己处理解决了,客户端不知道后台发生了异常,客户能正常获得他想要的信息、执行它的功能就可以。
2024-09-21 18:43:59 359
原创 数据结构、STL
4.在B+树中,叶结点包含信息,所有非叶结点仅起索引作用,非叶结点中的每个索引项只含有对应子树的最大关键字和指向该子树的指针,不含有该关键字对应记录的存储地址。2.B树(m阶)根节点的关键字树n范围[1,m-1],其他节点关键字字数n在[(m/2)(向上取整)-1,m-1]。下面将详细介绍每种容器,包括它们的底层数据结构、是否支持随机存取、查找和删除的复杂度、基本用法声明,以及它们的优缺点。直接插入排序、希尔排序、选择排序、堆排序、冒泡排序、快速排序、归并排序、基数排序、外部排序。
2024-09-16 22:17:57 1119
原创 计算机网络
ARP协议:数据链路层(Layer 2)DHCP协议:应用层(Layer 7)ICMP协议:网络层(Layer 3)这些协议都在TCP/IP协议栈中起着至关重要的作用,但它们分别位于不同的层次,服务于不同的网络功能。IPv6IPv6(Internet Protocol version 6)是下一代互联网协议,用于替代当前广泛使用的IPv4它是为了应对IPv4的地址枯竭问题而开发的,提供了更大规模的IP地址空间和一些新的网络特性。IPv6地址长度:IPv6地址是128位的二进制数,通常表示为。
2024-09-16 18:49:43 1126 1
原创 C++八股总结(不间断更新)
delete进行销毁对象的时候,首先调用的是析构函数,一边释放对象持有的资源或执行其他清理工作,析构函数调用之后,delete会调用operator delete,通常这是一个底层的内存释放函数,默认情况下会使用free来释放。类:在类中,被static修饰的成员变量是类静态成员,这个静态成员会被类的多个对象共用。**封装:**封装是面向对象的独立基本概念之一,他将数据和操作数据的方法绑定在一起,形成一个独立的单元,通过封装可以隐藏对象的内部实现细节,仅提供必要的接口给外界使用,保护数据的完整性和安全性。
2024-09-13 12:09:13 1052
原创 Linux学习笔记(黑马程序员,前四章节)
IP地址:每一台联网的电脑都会有的一个地址,用于和其他计算机进行通讯,IP地址主要有IPv4和IPv6,IPv4的地址格式:a.b.c.d,其中abcd表示0~255的数字。vi、vm是visual interface的简称,是Linux中最经典的文本编辑器,同图形化界面中的文本编译器是一样的,vi是命令行下对文本及进行编译的绝佳选择。vim是vi的加强版本,兼容vi的所有指令,不仅能编辑文本,而且还具有shell程序编辑的功能,可以不同颜色的字体来辨别语法的正确性,极大方便了程序的设计和编辑性。
2024-09-12 22:25:21 724
原创 C/C++ 网络聊天室在线聊天系统(整理重传)
1.流式socket(TCP):面向连接,可靠、顺序的。就是一个网络通信的端点,通常用于客户端与服务器之间的通信。每一台电脑都有一个IP地址,一台电脑上有多个应用,每个应用都会有一个端口号。是一种用于网络通信的编程接口(API),它抽象了操作系统网络通信底层的实现。accept():接受客户端的连接请求,生成一个新的 Socket。socket:类似于接口的东西,只有通过这个才能跟对应的电脑通信。用于定义数据传输的规则,常见的协议有:TCP、UDP。socket():创建一个 Socket。
2024-09-08 02:14:39 767
原创 C++11线程池、多线程编程(附源码)
1.传递临时变量问题x = x + 1;int a = 1;/*t.join();//运行报错,因为t(foo, a)默认情况下传的是值,不是引用,改成ref(a)就可以*/t.join();//输出结果22.传递指针或引用指向局部变量的问题int a = 1;thread t;x = x + 1;//会报错,但也不一定,不同环境下有可能也不会,但是这是不安全的情况,所以最好还是放外面//a在栈里面,如果test先于foo执行完毕,那么a就释放掉了,线程就报错了。
2024-09-07 21:27:32 927
原创 QT +C++环境使用Python.h调用python函数时使用了matplotlib画图出现问题
*注:**QT调用的python函数有returnQT需要的类型的返回值,如果python函数在实现的过程中又调用别的python函数且也return了QT所需的类型的返回值,那就需要注意一下,有时候会出现问题。使用了.show函数,QT中不可像python那样使用matplotlib进行交互,所以删除show改成存储在指定位置即可。代码、函数没有任何问题就只有matplotlib部分有问题。
2024-04-28 16:13:04 399 1
原创 QT发生弹出警告窗口
上面的文字可以更改,但是窗口的整体是系统默认的,想要更改的话需要自己使用代码重新编写设计窗体。有没有可以在程序异常结束的时候使用一个警告窗口代替程序闪退的方法?有没有大佬知道这种?
2024-01-25 15:06:12 1539 1
原创 QT+C++环境调用python函数可以进入python环境和模块,但是调用功能函数错误
因为功能需要更改了python函数中调用的库函数的内容,例如:我是用了math提供的sqrt函数,但是我因为自己的需求更改了math库的sqrt函数的定义,也就是说我这里代码所使用的sqrt函数和原本的math中的sqrt已经不一样了,虽然在python中还可以正常调用,但是QT还是会默认你使用到sqrt的时候是原本没有修改过的,但是如果QT使用原本没有修改过的sqrt来运行你的这个python函数,就会出现问题。我这里直接选择舍弃了自定义库函数,没有尝试更改QT中库函数的定义。舍弃了之后运行一切正常。
2024-01-24 22:10:09 437
原创 QT调用python程序出现问题Failed to get function
原因:python中虽然已经导入了我们需要的包(不然python程序运行不起来),但是在QT调用的时候并没有找到它所需要的那个包,所以这个时候我们的解决办法就是直接在终端pip一个所需要的包。上海交通大学:https://mirror.sjtu.edu.cn/pypi/web/simple/中国科技大学:https://pypi.mirrors.ustc.edu.cn/simple/清华:https://pypi.tuna.tsinghua.edu.cn/simple/
2023-10-04 17:37:13 278
原创 QT设置背景图片(标签页设置界面)
2.选择“添加资源”,然后有三个选项,“blackground-image”、“border-image”、“image”,选择第一个是像素平铺图片,第二个是自适应的图片。这个时候拖一个“Frame”控件进入子界面,然后把按钮之类的控件都拖进去(可以把Frame的大小调整到和子界面一样大的大小),然后调出来styleSheet,然后按照下面的情况进行输入。3.左边选择,右边会出现可选择的图片,选中之后点击“OK”。把下面四个参数都改成0,就没有间隙了。
2023-09-26 16:37:58 1695
原创 QT程序打包图片无法正常显示
本机测试正常,图片可正常显示功能也可正常进行,但打包发送给没有环境数据的电脑上进行测试就会出现图片无法显示的问题。5.然后再点击添加,这个时候选择添加文件,然后会弹出一个文件窗口,把自己的图片复制到这个窗口,然后选中就可以了。并没有找到理论支撑,个人觉得是因为没有把图片文件放入QT项目的资源文件中,所以建议先将图片导入项目资源中。4.点击添加,选择添加前缀,前缀名称自己输入,例如我这里是系统给的自定义的。6.选择完之后点击这个小锤子,然后图片数据就出现在项目里了。
2023-09-25 20:32:19 926
原创 QT+C++,导入Python.h文件
QT+C++导入python脚本,error: '::hypot' has not been declared using ::hypot;error: expected unqualified-id before ';' token PyType_Slot *slots; /* terminated by slot==0. */
2023-04-19 12:00:48 549
原创 QT_4(信号和槽)
信号和槽忘记的函数去qt助手中可以搜索代码实现自定义的信号和槽理论部分:teacher.h:二、设置完头文件之后要设置实现文件(.cpp文件)student.cpp:teacher.cpp:窗口文件mywidget.cpp:在窗口文件的头文件中记得增加一个classIsOver()函数的定义
2022-09-25 14:20:00 350
原创 QT_03(对象树,坐标系)
当创建的对象在堆区时,如果指定的父亲是Object派生下来的类或者Object子类派生下来的类,可以不用管理释放的操作,对象会被放入对象树中。构造从上到下,析构释放从下到上。一定程度上简化了内存回收机制。1.左上角为(0,0)点。
2022-09-14 22:06:40 109
原创 QT_01
1.1 跨平台的图形界面引擎1.2 优点1.2.1 跨平台1.2.2 接口简单,容易上手1.2.3 一定程度上简化了内存回收(new出来的对象有时候不用考虑它的释放)1.3 版本1.3.1 商业版1.3.2 开源版1.4 成功案例1.4.1 Linux桌面环境1.4.2 谷歌地图1.1.3 VLC多媒体播放器1.5 创建第一个QT程序之后按照自己的需要一步步选择即可。1.6 补充信息1.6.1 文件路径名称不能出现中文。
2022-09-14 20:20:01 88
原创 LCP 02. 分式化简,力扣
有一个同学在学习分式。他需要将一个连分数化成最简分数,你能帮助他吗?连分数是形如上图的分式。在本题中,所有系数都是大于等于0的整数。输入的cont代表连分数的系数(cont[0]代表上图的a0,以此类推)。返回一个长度为2的数组[n, m],使得连分数的值等于n / m,且n, m最大公约数为1。来源:力扣(LeetCode)链接:https://leetcode.cn/problems/deep-dark-fraction著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请.
2022-08-07 10:52:31 1384
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人