自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【linux】深入了解线程池:基本概念与代码实例(C++)

线程池是一种并发编程的解决方案(线程使用模式),它由一组工作线程和一个任务队列组成。工作线程在初始化时被创建并持续运行,等待从任务队列中获取任务并执行。当任务执行完成后,线程不会退出,而是继续保持运行状态,等待下一个任务的到来。线程池不仅能够保证内核的充分利用,还能防止过分调度。

2024-05-23 14:59:34 467

原创 【Linux】套接字的理解 & 基于UDP协议的套接字编程(多版本)

网络基础 - 预备知识(协议、网络协议、网络传输流程、地址管理)套接字(Socket)是计算机网络中用于实现进程间通信的一种机制。它允许在不同计算机之间或同一计算机的不同进程之间进行数据传输和通信。套接字可以看作是网络通信中的一个端点,它由IP地址和端口号组成,用于唯一标识网络中的通信实体点。套接字提供了一组接口(通常是API)用于创建、连接、发送、接收和关闭连接等操作,以实现数据的传输和通信。套接字可以分为两种类型(了解)流套接字(Stream Socket)和。

2024-05-17 15:45:40 566

原创 【网络基础】网络层 之 IP协议与分片、网段划分、IP地址分类、子网掩码与路由

文章介绍了网络层与IP协议路由的相关内容:包括IP协议段格式、分片的详细解释、网段划分的理解(国际间通信)、IP地址的分类、子网掩码的概念、私有IP地址与公有IP地址、路由器的两套IP(WAN口IP与LAN口IP)、路由的概念,网络通信的过程

2024-05-11 14:05:44 804 1

原创 【网络基础2】深入理解TCP协议:协议段、可靠性、各种机制

文章介绍了TCP协议的相关内容:如TCP协议段格式、TCP的各种字段、如何解包/向上交付、可靠性的理解、各种机制、TCP全双工的原因、理解链接、实现可靠性的方式、理解TCP面向字节流、TCP与UDP对比、TCP的相关实验、对listen的第二个参数理解、基于TCP的应用层协议

2024-05-01 22:09:41 743

原创 【网络基础1】深入理解UDP协议:从报文格式到应用本质

首先我们知道,什么是Udp协议是一种无连接的传输协议,它位于OSI模型的传输层,用于在计算机网络上发送数据。在之前所写的进程间通信套接字编程的代码都是在应用层的,接下来的Udp、Tcp协议在传输层。

2024-04-27 21:12:52 1156

原创 【动态规划】C++ 子序列问题(递增子序列、数对链、定差子序列、斐波那契子序列...)

本文介绍了动态规划中的子序列问题,通过一系列例题对此类动态规划问题有较好的了解。

2024-04-24 09:00:39 759

原创 【动态规划】C++ dp子数组问题(最大/最长:环形/子数组和、乘积最大/为正数、单词拆分、子串)

文章介绍了子数组类的dp问题,并通过一系列算法题加深对该类问题的解法理解。

2024-04-22 11:25:11 808

原创 【动态规划】C++简单多状态dp问题(打家劫舍、粉刷房子、买卖股票的最佳时机...)

本文通过一系列例题进行对 简单多状态的dp问题的理解

2024-04-20 13:50:46 1024

原创 【动态规划】dp 路径问题(不同路径、路径最小和、地下城游戏...)

本文首先通过一篇文字理解动态规划与使用dp数组,最后用一些算法题详解解决动态规划中的路径问题

2024-04-19 15:18:20 631

原创 【动态规划】C++解决斐波那契模型题目(三步问题、爬楼梯、解码方法...)

动态规划是一种解决复杂问题的算法设计技术,通常用于解决具有和性质的问题。它将问题分解成较小的子问题,通过解决这些子问题并保存其结果,最终构建出原问题的解。:问题可以被分解为相同的子问题,并且这些子问题在求解过程中会被多次重复计算。:问题的最优解可以由其子问题的最优解来构造。

2024-04-18 14:45:11 786

原创 【Qt学习】了解Qt文件系统 + 利用QFile类实现记事本功能

文件操作是应⽤程序必不可少的部分,Qt作为一个通用开发库,提供了丰富的文件操作类,使得应用程序能够方便地进行文件系统操作。QIODevice是 Qt 中用于处理输入输出操作的抽象基类,它为文件、网络套接字、串口等设备提供了统一的接口。下面是QIODevice的子类QIODevice 子类描述QFile用于读写文件QBuffer在内存中创建缓冲区进行数据读写QProcess用于启动外部进程并进行通信处理网络请求响应数据QTcpSocket用于 TCP 网络套接字通信。

2024-03-28 09:03:49 667

原创 网络基础 - 预备知识(协议、网络协议、网络传输流程、地址管理)

本文介绍了网络基础内容,预备知识:认识协议;了解网络协议,包括协议分层的引入与OSI七层模型和TCP/IP四层模型;以及网络传输的流程:包括流程图,报头的概念,以及封装解包的传输过程;最后是网络中的地址管理。

2024-03-14 19:36:14 919

原创 【Qt学习】QProgressBar的使用(进度条的实现)

详细的 QProgressBar 内容可以通过查阅Qt官方文档,这里进行简要的总结:可以水平或垂直显示,可以根据需要设置最小值和最大值,以及当前的数值,从而控制进度条的显示。提供了一些方法来控制进度条的外观和行为,比如设置进度条的最小值和最大值、设置进度条的文本显示格式、设置进度条的样式表等。属性名描述value表示当前进度的数值minimum表示进度的最小值maximum表示进度的最大值表示是否显示进度条上的文本alignment表示文本对齐方式format。

2024-03-07 10:02:18 1088

原创 【Qt学习】QDial 与 QSlider 的 介绍与使用(利用控件 控制窗口透明度 / 窗口大小)

本文介绍了Qt的两个控件:QDial与QSlider,分别介绍了其核心属性,以及相关实例应用(用QDial控制窗口不透明度、用QSlider控制窗口大小)

2024-03-06 19:35:51 999

原创 【Qt学习】QSpinBox 与 QDateTimeEdit 控件 的介绍与实例()

对于QSpinBox,我们可以查阅Qt的官方文档进行了解:这里简单进行总结:QSpinBox,即微调框,用于提供一个用于输入整数值的微调控件。通常用于需要用户输入特定范围内整数值的界面。QSpinBox提供了一个带有箭头按钮的文本字段,用户可以通过点击箭头按钮或手动键入来增加或减少值。它还提供了一些附加功能,如设置最小值、最大值和步长。下面是QSpinBox的属性描述value当前SpinBox中显示的整数值minimum允许输入的最小整数值maximum允许输入的最大整数值。

2024-03-02 15:08:40 953

原创 【Qt学习】QTextEdit 与 QComboBox 的 属性与实例(槽函数的使用、读取本机内容到控件)

我们可以查阅官方文档,对QTextEditQTextEdit 是 Qt 框架中用于显示和编辑富文本内容的组件。QTextEdit有以下属性描述documentQTextEdit 中的文本内容存储在一个 QTextDocument 对象中。plainText获取或设置 QTextEdit 中的纯文本内容。textCursor返回当前 QTextEdit 中的光标位置。设置 QTextEdit 是否接受富文本格式的输入。readOnly设置 QTextEdit 是否为只读状态。

2024-03-01 16:08:35 1022

原创 【Qt学习】QLCDNumber的介绍与实例使用(倒计时功能)

QLCDNumber是Qt框架中用于显示数字的控件,它模拟了一个液晶数字显示屏。有以下属性描述intValue获取或设置QLCDNumber显示的整数值。获取或设置QLCDNumber显示的浮点数值。mode获取或设置QLCDNumber的显示模式。获取或设置QLCDNumber的段样式。frameShape获取或设置QLCDNumber的框架形状。获取或设置QLCDNumber的框架阴影效果。digitCount获取或设置QLCDNumber显示的数字位数。

2024-03-01 15:24:24 576

原创 【Qt学习】多元素控件:QListWidget、QTableWidget 的介绍与使用

是 Qt 框架中用于显示列表项的控件,它支持显示文本、图标等信息,并且可以允许用户通过交互选择其中的项。有以下核心函数(方法)函数描述addItem在列表中添加新的数据项insertItem在指定位置插入新的数据项takeItem从列表中移除指定的数据项并返回该数据项clear清空列表中所有的数据项sortItems根据指定的方式对列表中的数据项进行排序滚动列表以确保指定的数据项可见设置列表中的选择模式,可以为单选、多选等设置列表中的拖放功能是否启用。

2024-02-29 12:44:51 1425

原创 【Qt学习】QRadioButton 的介绍与使用(性别选择、模拟点餐)

这里简单对QRadioButton类进行介绍继承自,用于创建单选按钮;对于父类的属性和⽤法, QRadioButton 同样适⽤。由于QRadioButton继承自QAbstractButton类,因此拥有了一些与按钮相关的属性和方法。其中一个重要的属性就是check属性,用于判断按钮是否被选中。有以下三属性属性说明检查是否允许被选中checked()检查是否已被选中是否排他:即当选中该按钮后是否会取消对其他按钮的选择(QRadioButton默认排他)

2024-02-24 23:02:20 995

原创 【Qt学习】QPushButton添加图标 并通过快捷键控制该图标

我们知道:QPushButton表示一个按钮用于响应用户的点击事件。QPushButton可以显示文本、图标或同时显示两者,也可以设置按钮的样式和状态。用QPushButton设置图标,并设置快捷键控制该图标。

2024-02-23 20:33:50 959

原创 【Qt学习】QWidget的styleSheet属性与实例(日/夜间模式、RGB颜色的表示)

我们以此对styleSheetstyleSheet 样式表是一种可以通过文本描述来自定义控件外观的强大工具,它类似于网页开发中的CSS(层叠样式表)。在Qt中我们称为QSS。

2024-02-23 19:01:04 483

原创 【Qt学习】QLineEdit 控件 属性与实例(登录界面,验证密码,正则表达式)

文章介绍了1. QLineEdit 控件的属性、以及三个实例:登录界面、密码对比、显示输入框内容;以及2. 正则表达式的概念,QRegExp的概念、使用,以及利用正则表达式对文本框QLineEdit的内容进行验证。

2024-02-22 20:36:50 1537

原创 【算法】递归、回溯、剪枝、dfs 算法题练习(组合、排列、总和问题;C++)

文章主要关于使用dfs利用递归、回溯、剪枝的方法解决相关算法题:括号生成、目标和、组合总和、字母大小写全排列、优美的排列等

2024-02-21 13:57:01 1382 1

原创 【Qt学习】QWidget的font属性 与 toolTip属性 的介绍与实例使用

文章介绍了QWidget的两个常用属性:font属性(当前为该控件设置的字体)和toolTip属性(当前为该控件设置的字体);并分别通过代码实例对两种属性进行了应用

2024-02-21 11:53:07 1144

原创 【Qt学习】QWidget的cursor属性 - 介绍与使用(设置光标)

这个属性定义了小部件的光标形状。当鼠标悬停在该小部件上时,光标将采用此形状。预定义的光标对象列表提供了一系列有用的形状。该属性有下面四种接口API说明QCursorcursor()const获取小部件的当前光标对象。如果未设置光标,则返回父窗口的光标对象或默认的箭头光标对象void设置小部件的当前光标对象为给定的光标对象void清除小部件的当前光标对象并恢复父窗口的光标对象或默认的箭头光标对象。

2024-02-20 11:17:02 744

原创 【Qt学习】QWidget的windowOpacity属性介绍与实例使用(双重检查的引入)

我们可以查阅qt的官方文档:windowOpacity() 表示窗口的不透明度级别。有效的范围是从1.0(完全不透明)到0.0(完全透明)。默认情况下,该属性的值为1.0API说明获取控件的不透明度,并返回float类型设置控件的不透明数值。

2024-02-20 10:54:53 438

原创 【Qt学习】QIcon类 + 利用qrc机制设置图片路径(QtCreator)

setIcon()是用于设置窗口部件(如按钮、标签等)的图标。它可以将一个 QIcon 对象设置为窗口部件的图标,用于在界面中显示该部件的图标。通过setIcon()设置的图标将会显示在指定的窗口部件上。是用于设置顶级窗口(如主窗口、对话框等)的图标。它可以将一个 QIcon 对象设置为顶级窗口的图标,用于在窗口的标题栏、任务栏等位置显示该图标。通过设置的图标将会显示在窗口的标题栏、任务栏等位置。

2024-02-13 17:27:15 2145

原创 【Qt学习笔记】Qt Creator环境下 信号与槽 详解(自定义信号槽、断连、lambda表达式等)

当QT提供的标准信号槽无法满足需求时,我们可以设计所需的信号与槽的功能,最后通过connect连接以实现功能。当我们编写新的类时,要让其继承Qt的某些标准类继承自QObject:类必须直接或间接地继承自QObject,以便能够使用信号和槽机制Q_OBJECT 宏:在类的声明中,使用Q_OBJECT宏进行标记。信号与槽函数声明:在类内部声明自定义信号和槽函数。信号声明只需要在signals部分声明,槽函数声明则需要在public slots或private slots部分声明。

2024-02-07 22:08:56 1644

原创 【算法】{画决策树 + dfs + 递归 + 回溯 + 剪枝} 解决排列、子集问题(C++)

dfs问题我们已经学过,对于排列、子集类的问题,一般可以想到暴力枚举,但此类问题用暴力解法 一般都会超时,时间开销过大。对于该种问题,重点在于尽可能详细的画决策树,随后根据决策树分析 题目所涉及的剪枝、回溯、递归等细节问题。根据决策树的画法不同,题目会有不同的解法,只要保证决策树没有问题,保证细节问题下 代码一定可以编写出来。

2024-02-04 17:05:26 2258

原创 【算法】利用递归dfs解决二叉树算法题(C++)

我们曾学过前序遍历,其就是深度优先搜索的一种应用。在二叉树的前序遍历中,我们首先访问根节点,然后递归对左子树进行前序遍历,最后递归地对右子树进行前序遍历。在深度优先搜索算法中,我们从起始节点开始,递归地探索每个可达节点,直到没有未访问的相邻节点为止。因此,前序遍历也可以看作是对图或树进行深度优先搜索的一种方式。它遵循先访问根节点,然后递归地访问左子节点和右子节点的顺序。

2024-02-03 15:07:33 963

原创 【算法】以汉诺塔理解递归、并用递归解决算法题

我们在学习数据结构 / 做算法题时,如二叉树、快排,归并等,会使用递归写代码。我们知道:递归就是函数调用自身的情况。而我们在写一个递归函数时,分为两个部分:终止条件(函数出口)和递归体。

2024-02-03 13:24:44 947

原创 【算法】BFS解决拓扑排序类算法题(C++)

在数据结构中我们学过 拓扑排序以及图的相关知识,在这里我们进行简单的复习↓在数据结构拓扑排序是一种对有向无环图(DAG)进行排序的算法。在对于我们下面的解题,可以理解为拓扑排序是确定任务执行顺序的如果图中存在环路,那么该图就没有拓扑排序,可以由此利用拓扑排序判断图是否有环。

2024-01-30 20:20:51 1057

原创 【算法】BFS算法解决多源最短路问题(C++)

此前我们对 单源最短路 问题进行的讲解:画图来说,单源最短路问题即为:而对于多源最短路问题:自然是 利用BFS算法解决,下面提出解法:当我们将所有的源点作为一个源点来进行解题时,问题又变成了单源最短路问题,而为什么可以认为这种解法是正确的呢?我们对于 单源最短路 问题的bfs解法为:自然,对于 多源最短路 的bfs解法为:542.01矩阵1020.飞地的数量1765.地图中的最高点1162.地图分析

2024-01-28 20:30:26 1024

原创 【算法】使用BFS算法(队列、哈希等)解决最短路径问题(迷宫、基因变化、单词接龙、高尔夫)(C++)

我们这里主要探讨权值为1的最短路问题。而对于权值为1的最短路问题:即不考虑每个路径点的值,只考虑最短的路径是什么即可。

2024-01-24 11:24:08 958

原创 【算法】利用模拟算法、规律解算法题(C++)

模拟算法即模拟问题过程来解决问题的算法。对于一些算法题,我们只需要将题目的过程 用代码编写出来,再结合其他方法,就可以解决。

2024-01-22 09:08:21 1062

原创 【算法】使用优先级队列(堆)解决算法题(TopK等)(C++)

优先级队列是一种常用的数据结构,用于解决许多算法问题。基于堆(Heap)实现,在每次操作中能够快速找到最大或最小值。使用优先级队列的典型算法问题包括:Top K 问题:查找列表中前 K 个最大或最小的元素。合并 K 个排序数组:将 K 个已排序的数组合并为一个有序数组。Dijkstra 算法:在加权图中找到从起点到目标节点的最短路径。Huffman 编码:使用最小堆构建前缀编码树来压缩数据。下面会挑选一些算法题并使用优先级队列进行解题。

2024-01-19 20:44:38 899

原创 【算法】队列+bfs算法 解决树的相关算法题(C++)

队列与宽度优先算法(BFS)是解决很多算法问题的常见工具。BFS通过逐层遍历图或树的节点来寻找解决问题的最短路径或最短步骤。使用队列可以很好地支持BFS算法的实现。创建一个空队列,并将起始节点放入队列中。创建一个集合用于记录已经访问过的节点,防止重复访问。(visited数组,一般用于路径、迷宫问题)初始化其他必要的辅助数据结构,例如距离数组或状态数组等。开始循环,直到队列为空:从队列中取出一个节点作为当前节点。如果当前节点是目标节点,说明找到了解,结束搜索。

2024-01-17 22:20:04 1021 1

原创 【算法】使用栈解决一系列算法题(匹配、表达式、模拟)(C++)

栈适合解决需要后进先出(LIFO)的结构的相关算法题,本文根据对五道算法题的讲解,主要就使用栈模拟、计算表达式、匹配问题等

2024-01-16 21:00:17 925

原创 【算法】算法(模拟、指针等)解决字符串类题目(C++)

字符串题目有很多种,这里筛选几个考察模拟、双指针等的题目,并用相关算法解决。

2024-01-15 17:50:52 925

原创 【算法】了解哈希表/思想 并用哈希解算法题(C++)

简单了解哈希表并使用思想解算法题

2024-01-14 22:41:24 983

空空如也

空空如也

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

TA关注的人

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