自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 万能钥匙:解锁 C++ 模板的无限可能(二)

一个程序(项目)由若干个源文件共同实现,而每个源文件单独编译生成目标文件,最后将所有目标文件链接起来形成单一的可执行文件的过程称为分离编译模式。优点模板复用了代码,节省资源,更快的迭代开发,C++的标准模板库(STL)因此而产生.增强了代码的灵活性.缺陷模板会导致代码膨胀问题,也会导致编译时间变长.出现模板编译错误时,错误信息会十分凌乱,不容易定位错误.

2026-01-30 12:50:35 690 18

原创 告别浅层调用:深入模拟实现STL Stack/Queue/Priority_Queue,知其所以然

使用正向迭代器适配反向迭代器的时候会认为它两存在对称关系,那么此时就会导致两个问题。

2026-01-25 14:34:50 759 18

原创 C++ STL 容器适配器详解:玩转 Stack (后进先出) 与 Queue (先进先出)

1.stack是一种容器适配器,专门用在具有后进先出操作的上下文环境中,其删除只能从容器的一端进行元素的插入与提取操作。2. stack是作为容器适配器被实现的,容器适配器即是对特定类封装作为其底层的容器,并提供一组特定的成员函数来访问其元素,将特定类作为其底层的,元素特定容器的尾部(即栈顶被压入和弹出。3. stack的底层容器可以是任何标准的容器类模板或者一些其他特定的容器类,这些容器类应该支持以下操作:empty:判空操作.back:获取尾部元素操作.

2026-01-20 08:00:00 611 3

原创 深入剖析List的底层实现原理

而一个结点需要存储的信息有:数据、前一个结点的地址、后一个结点的地址,于是该结点类的成员变量也就出来了(数据、前驱指针、后继指针)。因为该结点类只需要根据数据来构造一个结点即可,而结点的释放则由list的析构函数来完成。但是,上面的访问的方式还是有些绕,按照曾经我们学过的方式,我们更偏向于使用 ->的方式来进行访问.先记录当前结点指针的指向,然后让结点指针指向前一个结点,最后返回“自减”前的结点指针。先让结点指针指向前一个结点,然后再返回“自减”后的结点指针。判断这两个迭代器当中的结点指针的指向是否不同。

2026-01-19 00:18:14 687 14

原创 Qt常用控件(三)

这种设定方式其实并不方便. 尤其是界⾯如果内容⽐较多, 不好计算. 而且⼀个窗口大小往往是可以调整的, 按照绝对定位的⽅式, 也无法自适应窗⼝大小. 因此 Qt 引入 "布局管理器" (Layout) 机制, 来解决上述问题.运行程序, 观察代码效果. 可以看到两个按钮之间已经存在了间隔了.调整 QSpacerItem 不同的尺寸, 即可看到不同的间距.⼀个表格控件. ⼀个表格中包含若干行, 每⼀行又包含若干列. 表格中的每个单元格, 是⼀个 QTableWidgetItem。

2026-01-16 10:33:05 875 13

原创 Linux基础IO

缓冲区就是一段内存空间,由语言维护就叫做语言级的缓冲区,由操作系统内核维护就叫做内核级的缓冲区.

2026-01-07 12:22:13 763 17

原创 QT常用控件(二)

QAbstractButton中和QRadioButton关系较大的属性.属性说明checkable是否能选中checked是否已经被选中. checkable 是 checked 的前提条件.是否排他.选中⼀个按钮之后是否会取消其他按钮的选中.对于来说默认就是排他的.

2026-01-02 21:30:37 812 22

原创 从零掌握 List:高效操作与性能优化实战

1. list是可以在常数范围内在任意位置进行插入和删除的序列式容器,并且该容器可以前后双向迭代。2. list的底层是双向链表结构,双向链表中每个元素存储在互不相关的独立节点中,在节点中通过指针指向其前一个元素和后一个元素。3. list与非常相似:最主要的不同在于是单链表,只能朝前迭代,已让其更简单高效。4.与其他的序列式容器相比(arrayvectordeque)list通常在任意位置进行插入、移除元素的执行效率更好。5.与其他序列式容器相比,list和。

2025-12-15 18:06:12 1209 19

原创 QT常用控件(一)

Widget 是 Qt 中的核⼼概念. 英文原意是 "小部件", 我们此处也把它翻译为 "控件" . 控件是构成⼀个图形化界⾯的基本要素.像上述示例中的, 按钮, 列表视图, 树形视图, 单行输入框, 多行输入框, 滚动条, 下拉框等, 都可以称为 "控件"

2025-12-13 19:52:01 1180 18

原创 深入剖析vector的底层实现原理

start:指向容器的头._end:指向有效数据的尾._endofstorage:指向整个容器的尾部.

2025-12-08 22:03:47 1016 18

原创 从零开始学Linux进程控制:fork、wait、exec 详解

return、exit、_exit之间的联系。

2025-12-06 22:07:21 1132 18

原创 Qt中的信号与槽

在Qt中,用户和控件的每次交互过程称为⼀个事件。例如 "用户点击按钮" 是⼀个事件,"用户关闭窗口" 也是⼀个事件。每个事件都会发出⼀个信号,例如用户点击按钮会发出 "按钮被点击" 的信号,用户关闭窗口会发出 "窗口被关闭" 的信号。Qt 中的所有控件都具有接收信号的能力,⼀个控件还可以接收多个不同的信号。对于接收到的每个信号,控件都会做出相应的响应动作.例如,按钮所在的窗口接收到"按钮被点击"的信号以后,会做出"关闭自己"的响应动作;

2025-11-30 14:07:38 1127 18

原创 深入理解 Linux 环境变量与进程地址空间布局

在系统当中查找一个最合适调度的进程的时间复杂度是一个常数,不随着进程增多而导致时间成本增加,我们称之为进程调度O(1)算法!

2025-11-23 18:34:16 1263 17

原创 从零开始:打造属于你的链式二叉树

由于现在大家对二叉树结构掌握还不够深入,为了降低uu们的学习成本,此处手动快速创建一棵简单的二叉树,快速入二叉树操作学习,等二叉树结构了解的差不多时,我们反过头再来研究二叉树真正的创建方式。访问结点所做的操作依赖于具体的应用问题,遍历是二叉树上最重要的运算之一,也是二叉树上进行其它运算的基础.层上的节点,接着是第三层的节点,以此类推,自上而下,自左至右逐层访问树的结点的过程就是层序遍历。层序遍历就是从所在二叉树的根节点出发,首先访问第一层的树根节点,然后从左到右访问第。设二叉树的根节点所在。

2025-11-17 03:22:30 806 12

原创 别再只说“进程”了!深入 Linux 内核看进程如何被调度与管理

就绪状态:如果进程没有入运行队列,那么进程就处在就绪状态.阻塞状态:类似与Linux中的S状态与D状态.运行状态:进程在运行队列中,那么就处于运行状态即Linux中的R状态.终止状态:等价于Linux中的Z状态与X状态(死亡状态).

2025-11-14 14:10:25 1172 15

原创 冯诺依曼体系结构与操作系统

1:冯诺依曼体系结构有的uu会有疑问,先将输入的设备数据交给内存,再由内存将数据交给CPU,这个过程真的比CPU直接从输入设备获取数据更快吗?.虽然内存的大小只有4G/8G/12G/16G等,但是既然内存有大小,那么它就具有预存储数据的能力,而这就是提高冯诺依曼体系结构的核心所在.这里还需要提到根据统计学原理,当一个数据正在被访问时,那么下一次有很大可能会访问其周围的数据.所以当CPU需要获取某一行数据时,内存可以将这一行的数据后面的数据一同加载进来,而,这样下次CPU就可以直接从内存当中获取数据.

2025-11-12 07:30:00 756 2

原创 玩转二叉树:数据结构中的经典之作

的,一棵树可以被拆解为。

2025-11-10 16:16:50 946 8

原创 命令行即生产力:打造你的Linux开发利器

一般来说,大多数的IDE都有这个命 令,比如:Delphi的make,Visual C++的nmake,Linux下GNU的make。好啦,家人们,关于Linux环境基础开发实现这块的相关细节知识,博主就讲到这里了,如果uu们觉得博主讲的不错的话,请动动你们。的所有指令,而且还有一些新的特性在里面。在命令模式下,ctrl + v-------->hjkl进行区域选择--->包含仅包含//---->只管文件的依赖性,即,如果在我找了依赖关系之后,冒号后面的文件还是不在,那么对不起, 我就不工作啦。

2025-11-07 20:54:21 1320 3

原创 新手也能懂的 Linux 权限指南

目录的可执行是表示你能否在目录下执行命令.如果没有-x权限,则无法对目录执行任何命令,甚至无法cd进入目录,即使目录依旧有-r读权限而如果目录具有-x权限,但没有-r权限,则用户可以执行命令,可以cd进入目录.但由于没有目录的读权限,因此在目录下,即使可以执行ls命令,但依旧没有读出目录下的文档.好啦,家人们,关于Linux权限实现这块的相关细节知识,博主就讲到这里了,如果uu们觉得博主讲的不错的话,请动动你们滴滴。

2025-11-06 16:41:06 1290 4

原创 揭秘:打造高效日期管理神器——日期类的深度实现

hello,家人们,今天咱们来实现一个日期类,好啦,废话不多讲,开干.在实现日期类之前,首先我们得确定日期类中有哪些函数需要实现滴,那么为了令这个日期类更加得系统化,我们实现一个声明与定义分离的日期类。

2025-11-05 18:02:35 402 3

原创 Qt开发初识

hello,家人们,我们将进入qt初识的学习,好了,废话不多讲,开干!1:Qt实现Hello World(标签实现)在C语言和C++的学习中,我们都是以实现hello world为入门,那么同理,在Qt中也是如此,只不过在Qt中有两种方式实现hello world。

2025-11-05 16:36:47 1155 10

原创 Linux基本指令

则它会将前面指定的所有文件或目录复制到此目录中。若同时指定多个文件或目录,而最后的目的地。

2025-11-05 03:47:18 1004 4

原创 深入了解栈与队列:从基础到应用

嘿嘿,家人们,今天咱们来详细剖析数据结构中的栈和队列,好啦,废话不多讲,开干!

2025-11-02 20:44:38 661 3

原创 QT背景介绍与环境搭建

Qt 是⼀个跨平台的 C++ 图形⽤⼾界⾯应⽤程序框架。它为应⽤程序开发者提供了建⽴艺术级图形界⾯所需的所有功能。它是完全⾯向对象的,很容易扩展。Qt 为开发者提供了⼀种基于组件的开发模式,开发者可以通过简单的拖拽和组合来实现复杂的应⽤程序,同时也可以使⽤ C++ 语⾔进⾏⾼级开发。指采用图形方式显示的计算机操作用户界面,是计算机与其使⽤者之间的对话接⼝,是计算机系统的重要组成部分。如下分别是:Android ⼿机图形⽤⼾界⾯ 和 IOS ⼿机图形⽤⼾界⾯。

2025-11-02 08:00:00 1077 6

原创 C++ vector使用技巧:高效管理动态数据

1.vector是表示可变大小数组的序列容器。2.就像数组一样,vector也采用的连续存储空间来存储元素。也就是意味着可以采用下标对vector的元素进行访问,和数组一样高效。但是又不像数组,它的大小是可以动态改变的,而且它的大小会被容器自动处理。3. 本质讲,vector使用动态分配数组来存储它的元素。当新元素插入时候,这个数组需要被重新分配大小为了增加存储空间。其做法是,分配一个新的数组,然后将全部元素移到这个数组。

2025-11-01 15:50:06 945 9

原创 深入剖析String类的底层实现原理

即每个对象都有一份独立的资源,不要和其他对象共享。父母给每个孩子都买一份玩具,各自玩各自的就不会有存在任何矛盾.

2024-11-17 18:49:15 1122 39

原创 从零开始学链表:数据结构的基础与应用

嘿嘿,家人们,今天咱们来详细剖析数据结构中的链表,好啦,废话不多讲,开干!

2024-10-28 14:38:32 1443 34

原创 瞬时存取,无限可能:顺序表的独特魅力

嘿嘿,家人们,今天咱们来详细剖析数据结构中的顺序表,好啦,废话不多讲,开干!

2024-10-16 13:29:22 1082 31

原创 数据结构背后的秘密:时间复杂度与空间复杂度详解

算法就是定义良好的计算过程,取一个或一组的值为输入,并产生出一个或一组值作为输出。简单来说算法就是一系列的计算步骤,用来将输入数据转化成输出结果。

2024-10-11 09:58:32 1294 25

原创 文件处理不再难:带你轻松攻克C语言文件操作

函数名功能适用范围fgetc字符输入函数所有输入流fputc字符输出函数所有输出流fgets文本行输入函数所有输入流fputs文本行输出函数所有输出流fscanf格式化输入函数所有输入流fprintf格式化输出函数所有输出流fread二进制输入文件fwrite二进制输出文件。

2024-10-07 18:01:55 1418 37

原创 巧用联合与枚举:解锁自定义类型的无限潜力

联合体的成员是共用一块内存空间的,这样一个联合体变量的大小,至少是最大成员的大。

2024-09-20 14:32:36 837 34

原创 内存魔术师:精通内存函数的艺术

嘿嘿,家人们,今天咱们来详细剖析C语言中的内存函数,好啦,废话不多讲,开干!

2024-09-14 11:12:02 741 37

原创 从零到精通:用C++ STL string优化代码

hello,家人们,今天咱们来介绍string相关的操作,好啦,废话不多讲,开干.

2024-09-05 19:08:52 1029 42

原创 设计完美数据蓝图:玩转自定义结构体

/数值域int _value;//指针域}NewNode;位段的声明与结构体式类似,但是以下两点不同位段的成员必须是int、unsigned int 或者signed int,在C99中位段成员的类型也可以选其他类型.位段的成员名后边有一个冒号和一个数字.6.1.1:代码1struct Aint _a : 2;int _b : 5;int _c : 5;int _d : 5;

2024-09-04 09:45:27 943 30

原创 代码时光机:Git基础速成

在本地的git仓库中,有几个文件或者目录很特殊index:暂存区,git add后会更新该内容.默认指向master分支的一个指针.ref/heads/master:文件保存当前master分支的最新commit id.objects:包含了创建的各种版本库对象以及内容,简单理解就是放了git维护的所有修改.2.2:场景二在之前的学习,我们已经清楚了如何向仓库中添加文件、并且对于工作区、暂存区、版本库也有了一定的认识.那么博主再展示一种添加文件的场景,这样子能够加深对工作区、暂存区、版本库的理解.

2024-09-01 09:03:04 1359 33

原创 驾驭高效编程:一探C++ STL的奥秘

STL(standdard template library-标准模板库):是,不仅是一个可复用的组件库,2.:STL的版本2.1:原始版本Alexander Stepanov、Meng Lee在惠普实验室完成的原始版本,本就着开源的精神,他们声明能够允许任何人运用、拷贝、修改、传播、商业使用这些代码,无需付费.唯一的条件就是也需要向原始版本一样进行开源使用.

2024-08-26 18:53:54 730 29

原创 万能钥匙:解锁 C++ 模板的无限可能

class 类模板名//类内成员定义。

2024-08-17 11:43:57 1927 40

原创 超级字符串技能:提升你的编码游戏

第⼀个参数指定⼀个字符串,它包含了0个或者多个由sep字符串中⼀个或者多个分隔符分割的标记。strtok函数找到str中的下⼀个标记,并将其用\0结尾,返回⼀个指向这个标记的指针.(注:strtok函数会改变被操作的字符串,所以在使用strtok函数切分的字符串⼀般都是临时拷贝的内容并且可修改)strtok函数的第⼀个参数不为 NULL,函数将找到str中第⼀个标记,strtok函数将保存它在字符串中的位置。strtok函数的第⼀个参数为 NULL,

2024-08-14 22:00:26 1129 28

原创 C&C++内存魔术:掌控无形资源

在C语言阶段,当实现链表这种数据结构的时候,我们需要开辟空间,创建新节点,然后将其链接.

2024-08-04 16:56:57 1867 35

原创 驾驭代码的无形疆界:动态内存管理揭秘

2.malloc和free嘿嘿,uu们, 今天咱们来详细剖析动态内存管理,好啦,废话不多讲,开干!

2024-07-27 07:15:00 1314 42

空空如也

空空如也

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

TA关注的人

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