<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[m0_72024501的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/m0_72024501</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; m0_72024501]]></copyright><item><title><![CDATA[1543.统计好三元组（简单）]]></title><link>https://blog.youkuaiyun.com/m0_72024501/article/details/163677523</link><guid>https://blog.youkuaiyun.com/m0_72024501/article/details/163677523</guid><author>m0_72024501</author><pubDate>Wed, 12 Aug 2026 08:00:00 +0800</pubDate><description><![CDATA[给你一个整数数组arr，以及abc三个整数。请你统计其中好三元组的数量。如果三元组满足下列全部条件，则认为它是一个。其中|x|表示x的绝对值。返回。4一共有 4 个好三元组：[(3,0,1), (3,0,1), (3,1,1), (0,1,1)]。0不存在满足所有条件的三元组。i 从左往右固定第一个元素j 固定在 i 之后，先检验 i,j 的差值，如果超过 a，直接跳过该 j，不用遍历 k（剪枝优化）k 固定在 j 之后，检验 j‑k、i‑k 的绝对值条件。]]></description><category></category></item><item><title><![CDATA[网络编程（7）]]></title><link>https://blog.youkuaiyun.com/m0_72024501/article/details/151407736</link><guid>https://blog.youkuaiyun.com/m0_72024501/article/details/151407736</guid><author>m0_72024501</author><pubDate>Wed, 10 Sep 2025 21:30:00 +0800</pubDate><description><![CDATA[【0】复习modbus rtu与modbus tcp区别：都遵循主从问答Modbus TCP：以太网 报文头（7） 功能码（1） 数据 读数据、写单个、写多个Modbus RTU：串口 地址码（1） 功能码（1） 数据 校验位（2）Modbus 库：创建实例、设置从机ID、建立连接、寄存器操作、关闭套接字、释放实例。]]></description><category></category></item><item><title><![CDATA[网络编程（6）]]></title><link>https://blog.youkuaiyun.com/m0_72024501/article/details/151406705</link><guid>https://blog.youkuaiyun.com/m0_72024501/article/details/151406705</guid><author>m0_72024501</author><pubDate>Wed, 10 Sep 2025 21:30:00 +0800</pubDate><description><![CDATA[get请求可能没有请求数据，也可能有请求数据，但是请求数据不会在请求格式里请求数据处，会在地址栏中（也会在请求格式的url后面以？分割），post请求，有数据会在请求格式里请求数据处，一定不会在地址栏中（也不会在url之后跟着）上，浏览器作为HTTP客户端通过URL主动向HTTP服务端即WEB服务器发送所有请求，Web服务器根据接收到的请求后，向客户端发送响应信息。（一个 TCP 连接可处理多个请求），支持管道化（客户端可连续发送多个请求），新增缓存机制（如Cache-Control）。]]></description><category></category></item><item><title><![CDATA[ARM处理器的七种工作模式]]></title><link>https://blog.youkuaiyun.com/m0_72024501/article/details/151310884</link><guid>https://blog.youkuaiyun.com/m0_72024501/article/details/151310884</guid><author>m0_72024501</author><pubDate>Mon, 08 Sep 2025 09:00:05 +0800</pubDate><description><![CDATA[ARM处理器的七种工作模式是其​​的核心设计，用于隔离不同场景下的操作权限并高效处理各类事件（如中断、异常、系统调用等）。]]></description><category></category></item><item><title><![CDATA[网络编程（5）Modbus]]></title><link>https://blog.youkuaiyun.com/m0_72024501/article/details/151250488</link><guid>https://blog.youkuaiyun.com/m0_72024501/article/details/151250488</guid><author>m0_72024501</author><pubDate>Sat, 06 Sep 2025 16:00:00 +0800</pubDate><description><![CDATA[【1】Modbus1. 起源Modbus由Modicon公司于1979年开发，是全球第一个真正用于工业现场的总线协议在中国，Modbus 已经成为国家标准，并有专业的规范文档，感兴趣的可以去查阅相关的文件，详情如下：标准编号为:GB/T19582-2008文件名称:《基于 Modbus 协议的工业自动化网络规范》Modbus通信协议具有多个变种，其中有支持串口，以太网多个版本，其中最著名的是Modbus RTU、Modbus ASCII和Modbus TCP。]]></description><category></category></item><item><title><![CDATA[网络编程（4）]]></title><link>https://blog.youkuaiyun.com/m0_72024501/article/details/151020067</link><guid>https://blog.youkuaiyun.com/m0_72024501/article/details/151020067</guid><author>m0_72024501</author><pubDate>Sat, 30 Aug 2025 20:00:00 +0800</pubDate><description><![CDATA[【0】复习【1】组播（多播）理论●单播方式只能发给一个接收方。●广播方式发给所有的主机。过多的广播会大量占用网络带宽，造成广播风暴，影响正常的通信。●多播是一个人发送，加入到多播组的人接收数据。●多播方式既可以发给多个主机，又能避免像广播那样带来过多的负载(每台主机要到传输层才能判断广播包是否要处理)多播地址D类：224.0.0.1-239.255.255.254接收者创建套接字（socket）设置多播属性，将自己的IP加入到多播组中指定网络信息。]]></description><category></category></item><item><title><![CDATA[网络编程（3）]]></title><link>https://blog.youkuaiyun.com/m0_72024501/article/details/151019703</link><guid>https://blog.youkuaiyun.com/m0_72024501/article/details/151019703</guid><author>m0_72024501</author><pubDate>Sat, 30 Aug 2025 15:20:03 +0800</pubDate><description><![CDATA[未连接队列：在三次握手协议中，服务器维护一个未连接队列，该队列为每个客户端的SYN包(syn=j)开设一个条目，该条目表明服务器已收到SYN包，并向客户发出确认，正在等待客户端确认包。类似地，每一个FIN（表示结束）的ACK中的确认号为FIN的序列号加1。第二次握手：服务器必须确认客户的SYN，同时自己也得发送一个SYN分节，它含有服务器将在同一连接中发送的数据的初始序列号。指定网络信息-----------------------------------------------》有号码。]]></description><category></category></item><item><title><![CDATA[网络编程（2）]]></title><link>https://blog.youkuaiyun.com/m0_72024501/article/details/150962801</link><guid>https://blog.youkuaiyun.com/m0_72024501/article/details/150962801</guid><author>m0_72024501</author><pubDate>Fri, 29 Aug 2025 16:11:27 +0800</pubDate><description><![CDATA[由于 bind 函数所需的参数类型为 struct sockaddr *，而实际使用的是 struct sockaddr_in 类型的变量 saddr，因此必须执行类型转换操作，将 struct sockaddr_in 类型的指针转换为 struct sockaddr * 类型的指针。(struct sockaddr *)：为强制类型转换运算符，用于将 &saddr 所获得的 struct sockaddr_in * 类型指针转换为 struct sockaddr * 类型指针。这个FIN由TCP确认。]]></description><category></category></item><item><title><![CDATA[网络编程（1）]]></title><link>https://blog.youkuaiyun.com/m0_72024501/article/details/150870197</link><guid>https://blog.youkuaiyun.com/m0_72024501/article/details/150870197</guid><author>m0_72024501</author><pubDate>Wed, 27 Aug 2025 08:20:37 +0800</pubDate><description><![CDATA[笔试1：某公司有四个部门：行政、研发1、研发2、营销，每个部门各50台计算机接入公司局域网，如果要在192.168.1.0网段为每个部门划分子网，子网掩码应该怎么设置，每个子网的地址范围分别是什么？确保一个系统应用层发送的消息可以被另一个系统的应用层读取，编码转换，数据解 析，管理数据加密，解密；4.监听 (listen)----------------------------------》待机。3.绑定套接字 (bind)--------------------------》绑定手机（插卡）]]></description><category></category></item><item><title><![CDATA[ IO进程]]></title><link>https://blog.youkuaiyun.com/m0_72024501/article/details/150636494</link><guid>https://blog.youkuaiyun.com/m0_72024501/article/details/150636494</guid><author>m0_72024501</author><pubDate>Mon, 25 Aug 2025 20:58:29 +0800</pubDate><description><![CDATA[大纲标准IO文件IO库linux IO模型进程：process进程基础进程间通信：无名管道(pipe)、有名管道(fifo)、信号(signal)、共享内存(shared memory)、消息队列(message queue)线程(thread)、同步、互斥、条件变量课程特点：逻辑性没那么强，但是内容多节奏快。标准IO1. 什么是标准IO1.1 概念标准IO：是在C库中定义的一组专门用于输入输出的函数。1.2 特点通过缓冲机制减少系统调用，提高效率。]]></description><category></category></item><item><title><![CDATA[QT（八）数据库]]></title><link>https://blog.youkuaiyun.com/m0_72024501/article/details/149697984</link><guid>https://blog.youkuaiyun.com/m0_72024501/article/details/149697984</guid><author>m0_72024501</author><pubDate>Mon, 28 Jul 2025 12:00:00 +0800</pubDate><description><![CDATA[推荐使用这种方式，这种方式需要先编写有占位符的预处理SQL语句，交给Qt，Qt内部就知道要执行的SQL语句格式，然后在进行参数与占位符的替换，最终执行。Qt本身并没有数据库的功能，但是Qt支持调用其他主流的数据库产品，并且这些数据库产品指定了统一的Qt接口，实际上使一种数据库的中间件。增删改操作都需要录入用户输入，然后把用户输入的数据组装成SQL语句，最后执行。数据库操作信息类，用户手机数据库底层传递到Qt中的错误信息的。数据库相关类，用于一个数据库的连接。数据库的操作类，可以操作SQL语句。]]></description><category></category></item><item><title><![CDATA[QT（七）文件IO]]></title><link>https://blog.youkuaiyun.com/m0_72024501/article/details/149697885</link><guid>https://blog.youkuaiyun.com/m0_72024501/article/details/149697885</guid><author>m0_72024501</author><pubDate>Mon, 28 Jul 2025 07:00:00 +0800</pubDate><description><![CDATA[在实际开发中，两个线程不可能在毫无关系的前提下各干各的，最常见的情况是主线程分配一个耗时任务给子线程，子线程需要把耗时任务的执行情况反馈给主线程，主线程刷新子线程的耗时操作，并展示ui效果。之前说过的数据库也是一种数据持久化的方式，虽然嵌入式使用的SQLite数据库已经轻量级数据库了，但是相对于其他的技术，还是略显冗余了。在默认的情况下，Qt的项目是单线程的，这个自带的线程用于处理程序的主要任务和UI交互，也被称为主线程或者UI线程。一个伪拷贝的案例，使用for循环加睡眠，模拟文件拷贝的功能。]]></description><category></category></item><item><title><![CDATA[QT（六）多窗口编程]]></title><link>https://blog.youkuaiyun.com/m0_72024501/article/details/149689995</link><guid>https://blog.youkuaiyun.com/m0_72024501/article/details/149689995</guid><author>m0_72024501</author><pubDate>Sun, 27 Jul 2025 21:00:00 +0800</pubDate><description><![CDATA[QDialog的Qt源码中，派生类往往都是一些在特定场合下使用的预设好的对话框窗口，这些窗口的使用无需创建对象，直接使用静态成员函数弹窗，使用函数的返回值作为这个窗口的结果。之前认识此类更多的是站在组件的角度上，实际上QWidget作为所有窗口的基类，也具有很多窗口的特性。setter函数进行设置。本次学习主要是在窗口类中实现事件函数，从而检测到事件的传递过程，利用事件的触发机制实现一些特定的效果。事件函数的基础使用，只需要在对应的类中覆盖基类的事件函数即可，事件函数的参数就是包含了当前事件数据的对象。]]></description><category></category></item><item><title><![CDATA[QT（五）常用类]]></title><link>https://blog.youkuaiyun.com/m0_72024501/article/details/149689873</link><guid>https://blog.youkuaiyun.com/m0_72024501/article/details/149689873</guid><author>m0_72024501</author><pubDate>Sun, 27 Jul 2025 20:00:00 +0800</pubDate><description><![CDATA[中的容器类，相比较于C++的容器类，Qt的容器类更轻巧、更安全、更加的易于使用。Qt中对C++的类重写时，充分考虑到了C++程序员的编程习惯，因此QString几乎支持所有string的API，除此之外也会增加一些额外的函数。QString是Qt的字符串类，与C++的string相比，不再使用ASCII编码，QString使用的是Unicode编码。Qt是一个跨平台的开发框架，所以必须保证各个平台的数据类型的长度保持一致，因此Qt为常见的基本类型定义了新的类型符号。可以使用时间戳作为随机数的种子。]]></description><category></category></item><item><title><![CDATA[QT(四)基本组件]]></title><link>https://blog.youkuaiyun.com/m0_72024501/article/details/149689773</link><guid>https://blog.youkuaiyun.com/m0_72024501/article/details/149689773</guid><author>m0_72024501</author><pubDate>Sun, 27 Jul 2025 20:00:00 +0800</pubDate><description><![CDATA[QLabel可以用来显式文字或者图片，但是需要注意的是，QLabel不能与用户交互（不能点击），只能展示使用，因此没有合适的信号函数。我们也可以直接对组件对象进行命名， 系统默认的命名方式是“标签名称_序号”的方式，可以直接双击命名，命名完成后，需要回车。把图片导入到项目中，成为项目资源，直接使用Qt的虚拟路径导入图片，可以在任何的环境中进行使用这些资源图片了。策略：除非必要情况，或者实现特殊功能，否则我们的策略尽量不要修改，因为当前的策略对组件是最友好的。因为图片的操作非常消耗程序的资源。]]></description><category></category></item><item><title><![CDATA[QT（三）信号槽（重点）]]></title><link>https://blog.youkuaiyun.com/m0_72024501/article/details/149674233</link><guid>https://blog.youkuaiyun.com/m0_72024501/article/details/149674233</guid><author>m0_72024501</author><pubDate>Sun, 27 Jul 2025 08:00:00 +0800</pubDate><description><![CDATA[这种方式是最简单的，因为信号函数和槽函数都是Qt内置的，只需要在文档中查找出函数后，使用connect函数连接即可。Qt不可能内置所有执行的动作代码，特别是复杂的动作，需要开发者手动编写槽函数，这种方式也是所有连接方式中使用最多的。多对一指的是多个信号连接同一个槽函数，多对一的问题在于槽函数无法直接判断那个信号触发的槽函数调用，但是可以通过。，在声明的时候权限的作用主要是修饰其作为普通成员函数的使用效果，不影响信号槽的连接效果。信号槽通过程序员提前设定的“约定”，可以实现对象之间的通信，有两个先决条件。]]></description><category></category></item><item><title><![CDATA[QT（二）UI入门]]></title><link>https://blog.youkuaiyun.com/m0_72024501/article/details/149674192</link><guid>https://blog.youkuaiyun.com/m0_72024501/article/details/149674192</guid><author>m0_72024501</author><pubDate>Sun, 27 Jul 2025 06:00:00 +0800</pubDate><description><![CDATA[上面的窗口中，什么都没有，实际上可以向窗口中添加若干个子组件，来实现不同的显式效果和交互效果，本节以QPushButton（按压式按钮）组件为例。按照C++的内存回收机制，子组件应该在父窗口的构造函数中创建，在析构函数中销毁。样式表，QString为Qt的字符串类型，样式表使用QSS语法，（模仿的前端CSS语法）QWidget是所有组件和窗口的基类，内部也包含了一些最基础的界面特性。横坐标，每个图形的左上角为定位点。纵坐标，每个图形的左上角为定位点，纵轴的零点在屏幕的最上面，正方向向下。]]></description><category></category></item><item><title><![CDATA[QT（一）简介]]></title><link>https://blog.youkuaiyun.com/m0_72024501/article/details/149674071</link><guid>https://blog.youkuaiyun.com/m0_72024501/article/details/149674071</guid><author>m0_72024501</author><pubDate>Sun, 27 Jul 2025 06:00:00 +0800</pubDate><description><![CDATA[Qt是一个基于C++的图形用户界面（GUI）开发框架，但是Qt不仅仅能开发界面，还包含了很多传统的技术：多线程、数据库、图像处理、网络通信、文件IO。如果想要输出内容到后台中，需要使用QDdebug类下的qDebug函数输出调试信息到后台中，支持中文，整个的使用跟cout非常的相似，但是有以下区别。在C语言中printf或者C++的cout输出的内容都不区分前后台，但是Qt中输出的内容区分前台后台，在Qt中一个自定义的类的声明都写在.h中，这个类所用到的其他类头文件，也在此文件中引入。]]></description><category></category></item><item><title><![CDATA[C++笔记八（智能指针）]]></title><link>https://blog.youkuaiyun.com/m0_72024501/article/details/149669297</link><guid>https://blog.youkuaiyun.com/m0_72024501/article/details/149669297</guid><author>m0_72024501</author><pubDate>Sat, 26 Jul 2025 22:00:00 +0800</pubDate><description><![CDATA[每次多一个shared_ptr对资源进行管理，引用计数将+1，每个指向该对象的shared_ptr对象销毁时，引用计数-1，最后一个shared_ptr对象销毁时，计数清零，资源对象销毁。weak_ptr是一个不控制资源对象的智能指针，不会影响资源的引用计数，其主要的目的是协助shared_ptr工作。通过weak_ptr的构造函数，参数传入一个持有资源对象的shared_ptr或者weak_ptr对象即可创建。作为auto_ptr的改进，unique_ptr对其他持有的资源对象具有唯一控制权，即。]]></description><category></category></item><item><title><![CDATA[C++笔记七（异常处理）]]></title><link>https://blog.youkuaiyun.com/m0_72024501/article/details/149669099</link><guid>https://blog.youkuaiyun.com/m0_72024501/article/details/149669099</guid><author>m0_72024501</author><pubDate>Sat, 26 Jul 2025 17:04:00 +0800</pubDate><description><![CDATA[异常是程序在执行期间产生的问题，C++的异常是指在程序运行时发生的特殊情况，比如at函数的下标访问越界等。异常的处理方式有两种：抛出异常（throw）和捕获异常（try-catch）throw语句的操作数可以是任意的表达式，表达式的结果决定了抛出异常的类型。如果有一个try代码块抛出一个异常，捕获异常则使用catch代码块。无异常抛出，此时程序正常执行，不进入catch块。异常抛出，正确捕获，此时程序执行进入catch块。异常抛出，错误捕获（捕获类型不对），此时程序。在代码块中的任何地方抛出异常。]]></description><category></category></item></channel></rss>