- 博客(915)
- 资源 (26)
- 问答 (2)
- 收藏
- 关注
原创 深入探究C++2.0(C++11/14)【底层源码解析auto、智能指针、右值/万能引用、lambda表达式、并发编程】
文章目录0 背景1 内容0 背景因为C++11、14、17等相对与C++98来说,发生了巨大的改变,比如右值引用、可变模版参数、自动化类型推导、lambda、智能指针、tuple、Initialization_list等。可以说如果不了解C++2.0,可能看到这些特性编写的程序,就仿佛看到一门新语言一样。这些新的特性,并没有使得程序变得更加复杂,反而是使得程序更容易编写(如可变模版,可传递不限定的参数个数),并且提升了程序的效率(如右值引用,减少参数拷贝的时间消耗)。因此我觉得很有有必要了解并使用这些特
2021-04-15 23:38:47
846
3
原创 C++面向对象高级编程十九讲
文章目录0 背景1 内容0 背景因为本人的C++基础不是很扎实,很多面向对象的基本语法掌握的不是很熟练,导致写程序出错时,经常会犯错,于是就去网上找到了侯捷老师的C++课进行观摩学习。本文是在观看完侯捷老师的《面向对象高级开发》课程后一些笔记和心得。文中老师一直强调要养成写C++大气、正规、高效的编程方法,实际就是要培养良好的编程习惯。1 内容讲数标题第一讲防御式编程第二讲内联函数第三讲构造函数第四讲类第五讲常量第六讲参数传递第七
2021-04-01 22:51:23
731
原创 最好的C++入门书籍《Accelerated C++》 ——附全部课后习题答案以及学习心得
篇章目录1 内容简介2 作者简介3 心得与习题答案1 内容简介内容简介:《Accelerated C++ 中文版通过示例进行编程实践》系统介绍C++程序设计,是美国斯坦福大学的经典教材。从使用C++标准库中的高级抽象开始,使读者很快掌握编程方法。每一章都有很经典独特的例子以及非常到位的讲解,覆盖了C++更多领域的内容,从标准库容器、泛型算法的使用,到类的设计、泛型算法的设计,本书都进行了详细的...
2020-03-21 14:51:03
7115
2
原创 PAT甲【所有题目+解析+代码示例+总结】附带所有历年整体+讲解+代码
PAT (Advanced Level) Practice题目总结1001 A+B Format字符串处理1002 1002 A+B for Polynomials (25 分)简单模拟1003 Emergency (25分)——Dijkstra(邻接表、邻接矩阵)、Bellman_Ford、SPFA最短路径1004 Counting Leaves (...
2020-03-03 09:56:03
2771
原创 PAT乙【所有题目+解析+代码示例+总结】附带所有历年整体+讲解+代码
题目总结1001总结1002 写出这个数 (20 分)总结1003总结1004总结1005 继续(3n+1)猜想 (25 分)总结1006总结1007总结1008 数组元素循环右移问题 (20 分)总结1009 说反话 (20 分)总结1010 一元多项式求导 (25 分)总结1011 A+B 和 ...
2019-03-16 22:48:34
967
原创 蓝桥杯C++A、B组【所有题目汇总+解析+代码实例+总结】第三届~第十届
第九届蓝桥杯C++A组C++B组1,分数1,第几天2,星期一2,明码3,乘积尾零3,乘积尾零4,第几个幸运数4,测试次数5,打印图形5,快速排序6,航班时间6,递增三元组7,三体攻击7,螺旋折线8,全球变暖8,日志统计9,倍数问题9,全球变暖10,付账问题10,乘积最大总结归纳总结归纳第八...
2019-03-16 22:06:37
3588
转载 20几岁,你的存款有多少?
看到这个标题,很多人的第一反应可能是,开什么玩笑,20几岁我才刚毕业,能有多少存款。 这个标题是去年我在一个公众号上看到的一个话题,作者发了一篇这样的推文,内容只有这几个字:“20几岁,你有多少存款?”为的是征集广大读友的答案。 刚开始看到这个话题,我和大多数人的反应也是一样,觉得考虑到存款多少的问题,至少也应该在工作了几年奔三的时候。 然而,当我看到网友对这个话题的评论后...
2019-02-11 20:38:24
862
转载 如果你到了25岁,还没到30岁。——李开复
如果你到了25岁,还没到30岁。——李开复如果你已经过了25岁但还不到30岁的话,你必须找到除了爱情之外,能够使你用双脚坚强站在大地上的东西。你要找到谋生的方式。现在考虑不晚了。我从来不以为学历有什么重要,天才都不是科班,但,不是科班,连龙套都跑不了。你必须把那些浮如飘絮的思绪,渐渐转化为清晰的思路和简单的文字。不要琐碎,无病呻吟。不要想到什么就写。不要流连于小感伤和小感动。我要你相...
2019-02-11 20:18:22
753
原创 Qt优雅的组织项目结构三(使用CMakeLists进行模块化配置)——————附带详细示例代码
本文介绍了使用CMakeLists实现Qt项目的模块化配置方法。通过将UI相关文件移至form子目录并创建独立的CMakeLists.txt,实现了代码的清晰分离。主CMakeLists通过add_subdirectory引入子模块,并使用target_link_libraries进行链接。相比传统.cmake方式,该方法使子模块拥有独立构建配置,项目结构更清晰。文中提供了详细配置步骤和示例代码,包括设置Qt依赖、C++17标准、自动处理UI文件等关键配置项,最终实现了模块化的Qt项目结构。
2025-12-13 10:55:57
277
原创 Qt优雅的组织项目结构二(基于Qt5使用.cmake进行模块化配置)——————附带详细示例代码
本文介绍了在Qt5.15.2项目中使用CMake进行模块化管理的实践方法。针对Qt6全面转向CMake的趋势,作者选择兼容Qt5的最新版本开发,并详细对比了Qt5与Qt6在构建系统、图形架构、C++标准等方面的核心差异。文章重点展示了如何通过CMake脚本简化项目管理,包括自动处理Qt特性(信号槽、UI文件、资源文件)、强制指定C++17标准以及跨平台配置。通过实际项目结构对比,演示了从传统qmake项目向CMake模块化管理的迁移过程,为兼容旧系统的Qt5项目提供了现代化构建方案。
2025-12-12 23:45:00
1294
原创 Qt优雅的组织项目结构一(使用pri进行模块化配置)——————附带详细示例代码
本文介绍了在Qt项目中使用.pri文件实现模块化开发的方法。随着项目规模扩大,将所有代码集中管理会导致维护困难。.pri文件作为项目包含文件,语法与.pro相同,可将不同功能模块(如UI、网络等)的配置分离管理。具体实践包括:1)创建模块文件夹并迁移相关文件;2)编写模块.pri文件定义源文件、头文件路径等;3)在主.pro文件中通过include引入模块。这种方法使项目结构更清晰,便于团队协作和代码复用,同时支持跨平台条件编译和第三方库管理。最终实现了UI模块的独立封装,并通过INCLUDEPATH优化头
2025-12-12 11:01:55
522
原创 小试Spring boot项目二(数据库读、写操作)——————附带详细代码与示例
本文介绍了基于Spring Boot框架的数据库接口开发架构。主要内容包括:1) Spring Boot分层架构设计,展示标准包结构和资源文件组织;2) 详细解析四层核心结构:Entity层实现数据模型映射,Repository层封装数据库操作,Service层处理业务逻辑,Controller层管理HTTP请求响应;3) 以用户登录功能为例,演示各层代码实现,包括JPA注解、接口定义和业务逻辑处理。文章为需要将HTTP接口接入数据库的开发者提供了清晰的架构指导和实现范例。
2025-12-11 23:45:00
968
原创 小试Spring boot项目一(进行get、post方法、打包运行)——————附带详细代码与示例
本文介绍了如何配置Maven环境并创建Spring Boot项目。首先从官网下载Maven并配置环境变量,测试通过后使用IntelliJ IDEA新建Spring Boot项目。重点讲解了pom.xml文件的配置,包括继承spring-boot-starter-parent以简化配置、添加spring-boot-starter-web依赖构建Web应用、引入spring-boot-starter-test进行测试,以及配置spring-boot-maven-plugin插件打包部署。文章提供了详细的配置代码
2025-12-08 22:45:00
1074
原创 我与C++的故事(杂谈)
摘要:本文回忆了作者学习C++的历程,从大一初次接触时只会照搬书本代码,到大二通过Java理解面向对象思想,再到毕业设计和工作中的实践应用。作者认为通过项目实践学习编程比单纯啃语法书更有效,并调侃C++可能伴随一生。文章附有大学时期的C++技术书籍照片,展现了这段充满成长的技术旅程。(149字)
2025-12-04 23:20:52
179
原创 Qt显示并更改svg图片中的元素值——————附带详细实现步骤
SVG图片颜色修改方法总结 本文介绍了通过Qt修改SVG图片中特定元素颜色的完整实现方案。首先在项目中添加SVG和XML库支持,然后创建图形场景并加载SVG背景图。关键技术点包括:解析SVG文件的XML结构、通过递归遍历DOM元素、根据ID匹配目标元素并修改其颜色属性。最后重新渲染SVG实现颜色更新。该方法可用于需要动态修改SVG元素颜色的应用场景,如图形界面中状态指示等。文中提供了完整的实现代码,包括DOM解析、元素遍历和颜色修改的具体实现。
2025-10-24 00:15:00
446
原创 samba分配权限————附带详细操作步骤
Samba共享服务器配置指南 本文介绍了Samba文件共享服务器的详细配置步骤。首先修改smb.conf配置文件,设置不同用户组的共享权限(管理员、实习生、访客),包括路径、读写权限和访问控制。然后创建Linux用户并添加为Samba用户,建立用户分组并设置目录权限。配置完成后重启smbd服务使更改生效。最后提供了Windows端更换共享资源登录账户的命令行方法。文章特别强调配置文件中不能包含中文注释,否则会导致报错。通过详细的权限设置(如0751、0644等)和用户分组管理,实现了灵活的文件共享控制。
2025-09-29 22:30:00
1807
原创 搭建文件共享服务器samba————附带详细步骤
本文介绍了如何在Linux系统上配置Samba服务实现文件共享。主要内容包括:Samba协议的功能与原理;通过apt安装Samba服务;关闭防火墙和SELinux以允许访问;创建共享目录并修改配置文件;设置Samba用户密码;启动服务并设置开机自启;以及Windows客户端访问方法。文章还提供了Samba相关命令如smbpasswd的使用说明,帮助用户管理Samba账户。通过上述步骤,用户可以在局域网内实现Linux与Windows系统的文件共享功能。
2025-07-31 22:15:00
1497
原创 Qt生成日志与以及捕获崩溃文件(mingw64位,winDbg)————附带详细解说
本文介绍了在Qt开发中使用Mingw64编译器生成日志和捕获报错文件的方法。针对Qt软件频繁崩溃的问题,作者采用专为Qt-Mingw设计的ccrashstack类生成.dmp文件,并通过WinDbg工具进行调试分析。文章详细说明了WinDbg的安装使用步骤,包括设置源代码路径、解析dmp文件等操作。同时,还介绍了如何修改32位的ccrashstack类以适配64位环境,解决指针转换导致的精度损失问题。该方法能够准确定位发布版本中的异常闪退原因,是Qt开发中有效的调试解决方案。
2025-06-06 22:30:00
1793
原创 Qt中数据结构使用自定义类————附带详细示例
中数据存入时会对存入key值的数据进行比较,并按照比较后的顺序进行排序存储,因此需要重载运算符函数。//重载运算符函数bool operator<(const Animal &a) const //注意这里的两个const}else{int m_size;int m_area;中,当自定义类为value,每当赋值时,都会用到默认构造函数、拷贝构造、赋值运算符函数。如果没有重写构造函数,则编译器会帮忙编写上面的函数。int m_size;int m_area;
2025-05-05 21:45:00
944
原创 Qt使用QGraphicsView绘制线路图————附带详细实现代码
/1,创建场景: 场景是不可见的,是一个抽象的管理图形项的容器,可向场景中添加图形项,获取场景中的某个图形项等//3,图形项类(QGraphicsItem)://该类提供了一些基本的图形元件,也可在此基础上自定义图形项,它支持各种事件的响应,如鼠标事件、键盘事件、拖放事件等,以实现图形的交互功能/*------画线路------*///主干线//道岔//画灯。
2025-03-31 22:45:00
1895
3
原创 Qt实现使用TCP与RS485串口设备通信————附带详细实践方法
1,上位机电脑与RS485串口的设备硬件仪表设备直接通信,使用的是modbusRTU协议。2,上位机电脑如果使用TCP协议,与RS485串口的设备硬件仪表设备间接通信,则需要借助ModbusTCP协议。然后中间设备把ModbusTCP协议协议中的包体拆解为ModbusRTU协议的内容,传递给硬件仪表设备。Modbus是一种串行通信协议,是Modicon公司(现在的施耐德电气 SchneiderElectric)于 1979 年为使用可编程逻辑控制器(PLC)通信而发表。Modbus已经成为工。
2025-01-02 23:15:00
3236
原创 Qt绘制仪表————附带详细说明和代码示例
下面仪表模拟的是转速表和速度表,转速表中有怠速转速,降功转速的逻辑。下面是模拟双针仪表的效果:1,重写进行仪表绘制,使用进行动画绘制;2,进行属性动画绘制时,需要使用用于声明类的属性;下面代码位调用方法,接口的具体实现在后文中有详细描述。发射的信号:创建仪表类并设置参数:3.1 创建仪表属性类3.2 设置类属性创建对应的函数:3.3 绘制图案在类绘制事件中,添加各种绘制信息:3.3.1 设置反走样3.3.2 绘制背景3.3.3 重新定义坐标原点调整之前:调整之后:实
2024-12-13 22:30:00
1820
原创 Qt编写区位码gb2312、机内码、国标码————附带详细介绍和编码实现
在网络传输过程中:A要给B传输一个数据,如果A传去的数据是用GB2312-80编的,而B读取地方式是用ASCII方式的,GB 2312-80将区位码传过去,当B收到时会先读到区码,因为区码和位码的范围用十进制表示都是0~93,如果此时的区码的十进制是6,那么ASCII对应的6则是ACK,会发现ACK是回包的指示。3,通信字符:0~32,比如6,ACK,在两个电脑通信时,会一方接到另一方传来的数据时,就会回一个ACK包。,在7位的最前面补一个0,变成8位(bit),即一个字节(Byte)。
2024-12-13 22:00:00
1546
原创 搭建文件服务器并使用Qt实现文件上传和下载(带账号和密码)
1,安装(https://www.myfreax.com/how-to-setup-ftp-server-with-vsftpd-on-debian-11/)常用的文件服务器有apache、npm、ftp,这里选择的apache2,因为搭建和使用都比较方便。因为需要使程序具备在远程软件在服务器的上传和下载文件的功能,所以研究了一下怎么实现。-g 参数代表全局安装一定不要省略,全局安装后,全局都可以使用。这里下载使用的是post方法,而没有使用get。2,在需要共享的文件夹下,运行。2,新建ftp登录账户。
2024-11-25 23:30:00
1016
原创 Qt 多线程TCP客户端使用QTimer进行重连服务器———附带详细代码和讲解
【Qthread类】后,运行到了m_dealTcpClientThreadOne的run函数中的线程B中。在子线程中,使用Qtimer来进行定时重连TCP服务器,总是会出现跨线程创建和使用问题。2,不能在一个线程中启动定时器关联的对象,而在另一个线程释放(析构)此定时器关联的对象。对象功能函数(收、发服务器数据的函数)都是运行在Qthread类的run函数的线程中。原因:定时器相关的逻辑和数据结构与线程关联,只能在同一个线程中。1,不能为属于不同线程的父对象创建子对象;的运行的线程是不一样,不属于同一个。
2024-09-20 21:00:59
1480
原创 linux(debian)迁移var数据到已分配逻辑卷的物理盘
删除LVM之前创建的物理卷,卷组,逻辑卷时,删除顺序应该与创建时的顺序相反。也就是卸载文件系统,删除逻辑卷,删除卷组,删除物理卷。卸载文件系统时需要注意:如果之前没有更新。在sda5中,创建新分区,然后把sdc1分区的var文件放到sda5的分区中。迁移var目录的数据回sda盘中。
2024-08-13 21:45:00
850
原创 linux(debian)迁移home到其他物理盘并扩容——————附带详细步骤
注意:Linux系统使用逻辑卷来模拟物理分区,并在其中保存文件系统。Linux系统会像处理物理分区一样处理逻辑卷,允许你定义逻辑卷中的文件系统,然后将文件系统挂载到虚拟目录上。删除LVM之前创建的物理卷,卷组,逻辑卷时,删除顺序应该与创建时的顺序相反。也就是卸载文件系统,删除逻辑卷,删除卷组,删除物理卷。因为在装debian系统时,home目录和系统目录都在同一个物理盘上(使用LVM安装)。后面新添了物理硬盘,需要做到存储系统和数据的物理硬盘分离。注意:pvcreate定义了用于物理卷的物理分区。
2024-08-12 23:30:00
2038
原创 windows10和linux(debian12)设置静态ip————附带详细过程
因为下位机只能获取固定的ip(ip池很小)和端口,故需要设置静态的服务器的ip。由于服务器可能部署到windows或者debian上,所以需要在这两个操作系统上设置静态ip。如果遇到如下的问题,并且上不了网,那就可能是静态设置的ip和DHCP服务器动态分配的ip重复了。dns域名服务器为8.8.8.8(Google提供的一个公共DNS服务器地址)如果路由器是TP-Link,则在游览器中输入。可以通过如下的指令,看到网卡接口的名称为。,然后设置自己的静态ip地址和其他信息;从路由器设置中,查看DNS服务器。
2024-08-12 22:45:00
4023
原创 搭建个人网站之Docusaurus(最新3.4版本)超详细安装和使用说明————附带详细步骤
因为需要快速搭建一个文档网站,要求是简单、方便修改。之前使用过wordpress、typecho、Hexo来搭建个人博客网站,但是感觉都有些臃肿,不是那么简约和容易上手。nodejs安装:https://nodejs.org/en/download/package-manager。中文网:https://www.docusaurus.cn/docs/installation。英文网:https://docusaurus.io/docs/playground。,拥有活跃的社区支持和持续的迭代更新。
2024-07-19 22:30:00
6310
原创 qt5.15.2打包应用程序(附带mysql数据库连接)————附带详细步骤
因为Qt程序打包后,遇到了很多问题,例如无法定位程序输入点,数据库驱动无法载入的情况。通过查阅很多资料和实践操作,最终解决了问题。本文就是记录解决问题的方法。3,把之前编译数据库的链接文件,放到运行程序的同级目录下(因为是使用mariadb编译的数据库,所以用的也是mariadb的库文件);1,打开qt命令端软件;2,输入打包命令,例如。
2024-07-01 23:15:00
747
原创 qt中数据库和excel互导数据————附带详细步骤和代码
因为需要批量导入和导出数据,所以需要用到excel。实现把数据库的数据导入到excel中,把excel中的数据导出到数据库。这里使用了开源代码库QXlsx。没有设置, QXlsx’s的 CMakeLists.txt 将尝试自己寻找 Qt 版本(5 或 6)。数据库中的login_information表。2,把数据库中表的数据导出到excel中;1,建立数据库连接,同上;
2024-07-01 21:30:00
2358
原创 Qt数据库MySQL事务处理sql语句——————附带详细代码
数据库操作的时候,有多个数据库操作,需要一起运行,要么全部执行,要么全部不执行。需要用到事务处理,数据库里操作就是执行sql语句“START TRANSACTION;可以在代码中,执行操作后,却并不能达到事务处理的效果,查阅相关资料和实验后,最后下面的方法可以实现数据库的事务操作。
2024-06-13 23:45:00
571
原创 qt 实现模拟实际物体带速度的移动(水平、垂直、斜角度)——————附带完整代码
可以显示属性(继承自。左上(位于第三象限)右上(位于第四象限)右下(位于第一象限)左下(位于第二象限)
2024-06-13 23:15:00
1434
原创 windows10使用触控板、鼠标(magic trackpad)———附带BootCamp6驱动下载链接
最近在台式机(windows10系统)上使用mac设备,键盘magic keybord连上数据线就可以直接使用,但是触控板magic trackpad却不行,只有鼠标左键,没有右键,滑动等功能,功能残缺。最后通过,网上查阅相关资料,安装相关驱动,解决了此问题。链接:https://pan.baidu.com/s/1U_Wm5DsEJZZ2Vy1EeBYvdQ?解压上面三个压缩文件;
2024-06-09 08:15:00
4955
原创 编译qt5.15.2(mac/windows)的mysql驱动(附带编译好的文件)
链接:https://pan.baidu.com/s/1m15DbFuFTtXfEyqyOS2cew。因为需要连接到mysql数据库,所以需要连mysql驱动。4,把编译好的mysql放入到如下文件夹。3,编译文件,得到mysql驱动;2,添加mysql的外部关联库;中,把mysql的库文件也放入到。
2024-05-21 21:00:00
1245
原创 编译Qt6.5.3LTS版本(Mac/Windows)的mysql驱动(附带编译后的全部文件)
因为项目要用到对MYSQL数据库操作,所以需要连接到MYSQL数据库。但是连接需要MYSQL驱动,但是Qt本身不自带MYSQL驱动,需要自行编译。网上有很多qt之前版本的mysql驱动,但是没有找到qt6.5.3版本的,所以只好自己编译。
2024-04-29 22:02:10
1853
1
原创 qt安装历史版本5.15.2
因为需要,所以需要安装qt5的最后一个版本qt5.15.2,但是下载qt安装器后,发现没有想要的版本。后面才发现,可以筛选历史版本进行安装。
2024-04-29 22:00:12
1534
原创 Python实现时间序列ARIMA模型(附带超详细理论知识和完整代码实现)
时间序列分析的基本思想:寻找系统的当前值与其过去的运行记录(观察数据)的关系,建立能够比较精确地反映时间序列中动态依存关系的数学模型,并借此对系统的未来行为进行预报。ARIMA模型(Autoregressive Integrated Moving Average model,差分整合移动平均自回归模型,又称整合移动平均自回归模型(移动也可称作滑动)),是时间序列预测分析方法之一。ARIMA(p,d,q)中,AR是“自回归”,p为自回归项数;
2024-04-15 23:01:32
31328
6
原创 设计模式学习笔记(知识点与代码实践)
所以一直拖到现在。之前写项目也接触过一些零散的设计模型,却一直没有系统的学习过,这次就是系统的学习这方面的知识。本文就是学习心得和代码实践的记录。设计模式其实很早就想学习了,
2024-04-15 23:01:22
440
原创 error: failed to push some refs to hint: Updates were rejected because the tip of your current branc
指令相当于,首先切换到feature分支,然后把master分支合并到feature分支上。这样导致的结果就是feature分支的历史提交基底,由原理的B节点,变更为M节点。这样会导致不知道当前分支最早是从哪个分支拉出来的,也就是历史提交记录混乱。因为在网页端修改了项目,修改了文件,导致远程端仓库和本地仓库不一致,也就是出现了不同分支。因此解决办法就是合并分支。下图中,远程master上有一个新提交M,本地仓库feature上有两个新提交C和D,问题结局后,把项目推到远程仓库,最后把暂存的修改取出。
2024-04-14 08:15:00
988
QtTcpImage-master.zip
2020-04-19
Qt post请求发送和解析json数据完整示例,有完整的设置框架,可以发送和解析多个post请求
2021-03-14
ACM国际大学生程序设计竞赛:算法与实现(高清完整带书签版)
2019-03-20
QSetting操作ini文件(包括增删改查),自己封装了QSetting类
2020-04-20
590412 数据结构、算法与应用 C++语言描述 原书第2版——高清扫遍版带书签
2019-03-19
Qt WIndwos和Linux下的SSL文件
2021-05-11
OpenCV 3计算机视觉:Python语言实现——高清版带书签全书+源代码
2019-04-05
loginTest.zip
2020-04-20
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅