- 博客(147)
- 收藏
- 关注
原创 cgroups及相关工具(双版本使用方法)
cgroups(Control Groups)是 Linux 内核提供的一个功能,这个功能可以。本质上,cgroups 是内核附加在程序上的一系列钩子(hook),通过程序运行时对资源的调度触发相应的钩子以达到资源追踪和限制的目的。
2025-04-05 01:03:40
413
原创 namespace及相关命令
它允许系统将资源划分为彼此隔离的单元,通过 namespace 可以让一些进程只看到与自己相关的一部分资源,而另外一些进程也只能看到与它们自己相关的资源,。namespace 是对全局系统资源的一种封装机制,处于不同 namespace 的进程拥有独立的全局系统资源,且改变一个 namespace 中的系统资源只会影响当前 namespace 里的进程,对其他 namespace 中的进程没有影响。
2025-04-04 10:38:36
428
原创 数据结构B树的实现
B 树是一种(Multiway Balanced Search Tree),其设计目标在于,从而。不同于二叉树,B 树的每个节点可以存储多个关键字和多个子节点指针,这使得它能在较少的层数中容纳更多数据。正因为这种结构,B 树常常用于外部存储系统,比如。
2025-04-02 09:17:02
864
原创 数据结构跳表的实现
跳表(Skip List)是一种基于链表的数据结构,由 William Pugh 在 1990 年提出。它通过在多个层级上建立 “索引”,为有序链表提供了。相比于传统的平衡树(如红黑树、AVL树),跳表实现相对简单,并且在实际应用中也能提供接近 $O(\log n) $ 的查找、插入和删除性能。
2025-04-01 15:14:51
774
原创 数据结构LRU Cache
这种策略基于一个直观的假设——过去不常使用的数据,在未来也不太可能被频繁访问。这里的 Cache 指的是速度相差较大的两种硬件之间, 用于协调两者数据传输速度差异的结构。作为一种数据结构,LRU Cache 主要是在代码中模拟硬件 Cache 的容量有限,当有新的数据需要添加到 Cache 中时,需要挑选出一部分内容舍弃,以此腾出空间存储新数据的特点。
2025-03-31 11:08:50
869
原创 C++数据结构图(邻接矩阵和邻接表、图的遍历、两种最小生成树、三种最短路径)
树是特殊的图,对于图来说,树是一种无环的连通图。对于树来说,我们通常使用树的节点来存储数据,主要关系树的节点;但对于图来说,我们通常**研究节点与节点(边)的连接关系**。
2025-03-30 10:39:06
1361
原创 布隆过滤器
布隆过滤器就是位图和若干哈希函数的组成,普通的位图具有只能存储整型的缺陷,而布隆过滤器通过哈希函数映射,将诸如字符串等非整型数据映射到位图中。
2025-03-29 10:04:43
974
原创 C++数据结构并查集(并查集的合并和查找、按秩合并和路径优化)
并查集是一种树型的数据结构(逻辑上是树形,实际代码通常用数组实现),用于处理不相交集合的合并与查询问题。例如,在网络连通性问题中,假如我们有若干节点和它们之间的连接,并查集可以帮助我们快速判断两个节点是否在同一个连通分量中,或者合并两个连通分量。
2025-03-28 09:54:37
967
原创 Qt的网络编程
使用 Qt 的网络编程 API 需要先在 .pro 文件中添加 network 模块。Qt 的模块提供了静态库和动态库两个版本。不默认包含网络等其他模块,是为了使 Qt 生成的可执行程序更加轻量化。Qt 封装了自己的网络编程接口,将 Qt 的信号和槽的机制运用到了 Qt 的网络编程接口上,这些接口的使用方法与 C 语言原生的套接字编程接口区别较大,尤其是信号和槽的机制使得 Qt 服务器设计可很少使用甚至不使用多线程,也能实现正常的服务器功能。
2025-03-27 09:00:43
499
1
原创 Qt的文件操作
由于 Qt 的发展比较早,在 C++ 尚未提供标准的文件流操作时,Qt 就研发出了自己的文件操作并沿用至今。Qt 提供了丰富的文件操作类,包括QFile文件操作和读写类以外,还有QSaveFile(安全文件保存类)、(临时文件类)、QTcpSocket(TCP 类)、QUdpSocket(UDP类)、(串口通信类)、(蓝牙通信类)、QProcess(进程通信类)、QBuffer(文件缓冲区类)等。
2025-03-26 09:31:45
406
原创 Qt事件处理(处理鼠标事件、键盘事件、定时器事件、窗口移动和大小变化事件)
在 Qt 中,事件是用一个对象来管理一个事件的。所有的事件对象都继承自抽象类QEvent。事件包括鼠标事件、键盘事件等,发出自 Qt 或操作系统本身。处理事件一般通过来实现,Qt 中所有的 Event 函数都是虚函数,都可以进行重写。这通常需要自定义一些控件类来继承 Qt 的控件类(如创建Label类继承QLabel类),但 ui 界面拖拽出来的控件类型都是 Qt 的内置控件类型(如QLabel类),重写不能影响到 ui 的控件。但 Qt 也提供了解决方法,在 ui 界面对控件右键,选择提升为…
2025-03-25 20:03:45
963
原创 Qt窗口控件之浮动窗口QDockWidget
用于表示 Qt 中的浮动窗口,浮动窗口与工具栏类似,可以停靠在主窗口的上下左右位置,也可以单独拖出来作浮动窗口。
2025-03-24 13:44:55
438
原创 Qt窗口控件之工具栏QToolBar
QToolBar用于表示 Qt 中的工具栏,工具栏在 Qt 中不会默认生成,需要自己添加。QToolBar与一级菜单一样,同时添加文本和图标,文本就会被覆盖掉。但是覆盖掉的文本会被设置到toolTip中,以鼠标悬停显示信息的方式出现。
2025-03-23 10:12:50
532
原创 Qt窗口控件之菜单栏QMenuBar
Qt 中的菜单栏是通过QMenuBar类型来实现的,。一个菜单栏可以添加多个菜单,一个菜单又可以添加多个菜单项。每个菜单又都是一个QMenu类型,每个菜单项都是一个QAction。
2025-03-22 09:50:10
467
原创 Qt窗口控件之对话框QDialog
新建一个 C++ 并选择继承自QDialog类,这样我们的自定义类型就能使用QDialog的所有方法了:注意生成的文件可能还是有点问题,父类的头文件还需要自己手动包含:Q_OBJECTpublic:private:QPushButton* button=new QPushButton("关闭");QLabel* label=new QLabel("对话框标签");
2025-03-21 16:12:15
816
原创 Qt窗口控件之消息对话框QMessageBox
是继承于QDialog类,用于表示 Qt 中的一个消息对话框。消息对话框是应用程序中最常用的界面元素,主要用于为用户提示重要信息,强制用户进行选择操作。
2025-03-20 09:23:13
512
原创 Qt窗口控件之文件对话框QFileDialog
用于表示 Qt 中的文件对话框,它就是在打开文件,或另存为文件操作时显示的对话框。直接使用为文件对话框的标题文本。dir为默认查找文件的路径。filter为设置能够打开的文件类型。
2025-03-18 10:31:27
414
原创 C++数据结构哈希表的实现(开散列实现、闭散列实现)
哈希作为数据结构时,是一种通过某种哈希函数使元素的存储位置与它的关键码之间建立一一映射的关系,在查找时通过该函数就能快速找到该元素,平均时间复杂度为O1,且遍历结果是无序的。
2025-03-17 19:16:59
1288
原创 Qt窗口控件之字体对话框QFontDialog
是 Qt 内置的字体对话框,用户能够在这里选择字体的样式、大小,设置加粗和下划线并将结果作为返回值返回。最好使用其提供的静态函数实例化匿名对象,并获取返回值最为用户选择字体设置的结果。的成员函数有两个重载。ok布尔值是用于判断用户是点击了确定还是取消了字体设置。initial是字体对话框开启时的默认字体样式选择。
2025-03-17 16:59:32
228
原创 Qt窗口控件之输入对话框QInputDialog
是 Qt 内置的一个输入对话框,可以弹出一个,供用户选择并将返回值作为结果。是用户取消输入后的返回值,如果不希望它是0需要自己设置。
2025-03-16 09:17:39
337
原创 Qt常用控件之Layout总篇
Layout 是一类布局管理器,它能够将 Layout 内部的控件都按照某种方式布局,简单高效地使代码更美观。(垂直布局)、(水平布局)、(网格布局)、(表单布局)。在代码中创建的 layout,本质上就只创建了一个 layout。但在 ui 中创建的 layout,本质上是先创建一个 widget,再在这个 widget 中创建一个 layout。注意,如果在一个 layout 中某些控件左右可以拉伸,但上下不可拉伸,或上下可以拉伸,左右不可拉伸,这是由该控件的sizePolicy属性造成的,
2025-03-15 09:01:55
931
原创 Qt常用控件之网格布局QGridLayout
`QGridLayout` 是一个网格布局控件,它与 `QVLayout` 和 `QHLayout` 的不同在于,**`QGridLayout` 能够允许自定义控件放入布局中所处的行和列。**
2025-03-15 09:00:00
852
原创 Qt常用控件之表单布局QFormLayout
`QFormLayout` 是一个表单布局控件,属于 `QGridLayout` 的特殊情况,多用于左列提示,右列输入框这种 “表单” 样式。
2025-03-14 09:25:51
357
原创 Qt常用控件之水平布局QHBoxLayout
是一种水平布局控件。## 1. QHBoxLayout| 属性 | 说明 || ---------------------- | -------------- || **layoutLeftMargin** | 左侧边距。 || **layoutRightMargin** | 右侧边距。 || **layoutTopMargin** | 顶部边距。 || **layoutBottomMargin** |
2025-03-12 09:48:02
452
原创 Qt常用控件之垂直布局QVBoxLayout
是一种垂直布局控件。## 1. QVBoxLayout属性| 属性 | 说明 || ---------------------- | -------------- || **layoutLeftMargin** | 左侧边距。 || **layoutRightMargin** | 右侧边距。 || **layoutTopMargin** | 顶部边距。 || **layoutBottomMargin**
2025-03-11 09:56:47
477
原创 Qt常用控件之标签页控件QTabWidget
QTabWidget是一个标签页控件,可以将控件拖入标签页中,通过切换标签页切换不同控件的显示。代码创建的控件的父控件不是QTabWidget而是标签页tab或tab_2等 ,但 ui 创建的控件依然是通过ui->找到。
2025-03-10 11:10:52
495
原创 Qt常用控件之分组框QGroupBox
QGroupBox是一个,可以将其他的控件放到该控件里,使这些控件作为一组,这些控件的父控件不是widget而是这个QGroupBox。注意在 ui 界面复制粘贴控件的时候,要先选中QGroupBox再粘贴,否则粘贴出来的控件的父控件是widget。
2025-03-09 10:35:32
330
原创 Qt常用控件之树形QTreeWidget
表示一个树形控件,里面的每一个元素,都是一个类型的对象,每个都可以包含多个文本和图标,每个文本或图标为一个列。需要注意的是,向用户屏蔽了根节点,也就是说,QTreeWidget。
2025-03-08 09:58:17
954
原创 Qt常用控件之表格QTableWidget
# 表格QTableWidget`QTableWidget` 是一个表格控件,行和列交汇形成的每个单元格,是一个 `QTableWidgetItem` 对象。## 1. QTableWidget属性`QTableWidget` 的属性只有两个:| 属性 | 说明 || --------------- | -------------- || **rowCount** | 当前行的个数。 || **columnCount** | 当前列的
2025-03-07 09:16:00
690
原创 Qt常用控件之纵向列表QListWidget
是一个纵向列表控件。| 属性 | 说明 || --------------------- | -------------------------- || **currentRow** | 当前被选中的是第几行。 || **count** | 一共有多少行。 || **sortingEnabled** | 是否允许排序。 |
2025-03-06 09:37:20
1011
原创 Qt常用控件之滑动条QSlider
QSlider是一个滑动条控件,可以用鼠标拖动。QSlider有水平滑动条(horizontalSlider)和垂直滑动条(verticalSlider)两种。
2025-03-04 11:07:49
329
原创 Qt的多线程
Qt 的多线程 API 与 Linux 原生的多线程和 C++11 提供的线程库的使用逻辑不同,Linux 和 C++11 的多线程是通过函数指针或 lambda 表达式让多线程在函数内运行。但 Qt 的 QThreadrun()有人认为这种多态方法对于 C++ 来说不是很推荐广泛使用,多态的运行时确定(查虚函数表)对程序的运行有一定的额外开销,大量使用多态可能会导致程序运行效率变低。
2025-03-03 12:28:30
993
原创 Linux线程(线程的概念、线程的调度比进程快的原因、Linux 与 Windows 实现线程的不同策略、Linux的线程、C++ 11线程库、线程安全问题、线程的互斥、线程的同步、生产消费模型)
线程的概念、线程的调度比进程快的原因、Linux 与 Windows 实现线程的不同策略、Linux的线程、C++ 11线程库、线程安全问题、线程的互斥、线程的同步、生产消费模型
2025-03-02 17:24:52
1456
原创 Qt常用控件之旋钮QDial
是一个日期微调框控件,它可以选择。Qt 中还有QDateEdit只能微调年月日的控件和QTimeEdit只能微调时分的控件。
2025-03-02 00:04:08
426
原创 Qt常用控件之 日期微调框QDateTimeEdit
是一个日期微调框控件,它可以选择。Qt 中还有QDateEdit只能微调年月日的控件和QTimeEdit只能微调时分的控件。
2025-03-01 09:06:49
331
原创 Qt常用控件之微调框QSpinBox
QSpinBox是一个微调框控件,它是一个带有按钮的输入框,可以用来输入修改或点击按钮修改数值大小。是QSpinBox的版本。
2025-02-28 08:14:51
393
原创 Qt常用控件之下拉框QComboBox
QComboBox是一个下拉框控件。在使用 C++ 的流使用文件操作添加条目到 `QComboBox` 时,可能会涉及到 `std::string` 转 `QString` 的问题,可以使用 `QString::fromStdString()` 接口解决。同样的,需要将条目内容存入文件,也有 `QString::toStdString()` 可用。
2025-02-27 12:13:53
431
原创 Qt常用控件之多行输入框QTextEdit
QTextEdit是一个多行输入框控件,支持富文本和 markdown 格式,当文本内容超出编辑框的范围时能自动提供滚动条。是只支持富文本格式的多行输入框,属性和使用上与QTextEdit几乎没有区别。
2025-02-26 00:05:09
545
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人