- 博客(48)
- 收藏
- 关注
原创 【C++进阶】继承——带你“继承”程序中的“财产”
继承语法、访问权限变化、作用域隐藏、默认成员函数、友元与静态成员、切片、菱形继承与虚继承、组合 vs 继承、面试题。
2026-07-24 17:21:32
387
2
原创 【C++进阶】仿函数+模板进阶解析——从priority_queue源码看泛型编程的底层逻辑
一句话:仿函数就是重载了 operator() 的类,对象可以像函数一样被调用。// 普通函数// 仿函数// 怎么用?// 创建一个仿函数对象comp(3, 5);// 像函数一样调用!→ 返回 true// 匿名对象直接调用 → 返回 false// priority_queue 的向上调整(简化)// 仿函数对象if (_comp(_con[parent], _con[child])) { // ← 用仿函数比较!看到关键了吗?内部不写死还是,而是统一用来比较。
2026-07-23 09:55:13
350
原创 【C++初阶】STL——优先级队列&&双端队列:一文带你讲明白
缓存命中(Cache Hit):CPU 需要的数据正好在缓存中,直接读取,速度极快。缓存未命中(Cache Miss):CPU 需要的数据不在缓存中,必须从内存加载,速度慢 100 倍!缓存命中率 = 缓存命中次数 / 总访问次数命中率性能影响90%+程序跑得飞快50%明显卡顿<10%性能灾难容器内存布局缓存命中率遍历性能vector完全连续⭐⭐⭐⭐⭐最快deque分段连续⭐⭐⭐⭐很快list完全分散⭐⭐慢这也是为什么 STL 的stack和queue默认选择deque。
2026-07-20 14:20:04
156
1
原创 【C++初阶】STL—— Stack & Queue 从入门到精通:容器适配器、迭代器与经典面试题
在 C++ STL 中,stack和queue是非常常用的容器。但很多人只停留在"会用"的层面,对其底层实现、设计思想以及经典应用场景并不熟悉。那么今天就从容器适配器的设计思想出发,深入讲解stack和queue的底层原理,并配合经典面试题,帮助大家彻底掌握这部分知识。适配器(Adapter)是一种设计模式:将一个类的接口转换成用户期望的另一个接口。stack和queue本质上不是独立的容器,而是在已有容器基础上封装的适配器。它们不自己管理数据,而是复用底层容器的接口,只暴露栈/队列特有的操作。
2026-07-19 13:33:08
222
原创 【Linux系统编程】Linux系统指令(3)———一文带你了解Linux的基础指令
在上一篇文章中,我们学习了Linux一些新的指令,同时也明白了,在Linux环境下,一切接文件,这就让我们在理解操作系统和硬件方面有了更加深刻的认识,今天,我们就再继续学习Linux指令,本篇文章将会对Linux指令进行收尾。在文章的开头,也要做个小小的铺垫:Linux中,一切皆文件!!!
2026-05-21 22:33:19
427
16
原创 自用远控软件分享
网易UU远程则偏科比较严重,游戏场景表现可以,但办公需要的多屏协同、精细文件管理、安全权限控制这些功能就比较薄弱了,长时间连接的稳定性也一般。向日葵是国产远控的老牌子了,它的强项在硬件生态,比如开机插座、开机棒这些东西,远程开机确实方便。这两年陆陆续续用了市面上几款主流国产远控软件,卡顿的、掉线的、限速限到画面糊成一团的,各种坑都踩过。有的是为了能随时连上公司电脑处理急事,有的是为了能远程帮老家的父母解决手机和电脑问题,还有搞IT运维的朋友,一个人管着好几个机房的服务器,没个好用的远控软件根本忙不过来。
2026-05-20 19:44:19
363
3
原创 【Linux系统编程】Linux系统指令(2)———一文带你了解Linux的基础指令
在上一篇Linux文章中,我们学习了Linux的基础指令,像什么ls,pwd,cd等,那么今天我们就将Linux剩下的常用基础指令一网打尽,当然,知识常用的,冷门的指令等到我们后面碰到了其使用场景会继续拓展的~~~在这篇文章的开头,我要先做个小铺垫:Linux环境下所有的东西都是文件!!!
2026-05-16 22:14:39
557
27
原创 【C++初阶】STL——List从入门到应用完全指南(1)
目录一、list介绍二、list接口介绍与基本使用方法2.1、list 构造/析构函数:2.2、list Iterator(迭代器)2.3、list capacity2.4、list Elememt access2.5、list Modifiers三、测试代码list文档相关链接:list - C++ Referencelist在官方的定义中是:带头节点双向循环链表,图解如下:在list这个类中,官方提供的接口比较多,用起来可能会比较复杂,但是也和之前的vector和string类有相似之处,所以本文将会以
2026-05-10 22:07:30
546
44
原创 【C++初阶】STL——Vector从入门到应用完全指南(1)
从定义中我们可以看到,Vector与String相似,也是一个模板,毕竟是为了支持多种数据的插入。
2026-05-02 18:49:46
923
70
原创 【Linux系统编程】Linux基础指令(1)---一文带你了解Linux的基础指令
在本专栏中,我们将会系统性的学习Linux系统层面的编程知识,带你深入了解操作系统的运行原理,今天,我们就从Linux的基础指令开始,打开Linux编程的大门。
2026-04-25 03:41:55
1099
70
原创 【C++初阶】:STL——String从入门到应用完全指南(3)
在上一篇文章中,讲了String类在日常使用时会用到的大部分接口,那么这篇文章就对接口的讲解进行一个收尾,等到下一篇文章就开始对String类进行自己的模拟实现。
2026-04-20 01:19:17
519
45
原创 【C++初阶】:STL——String从入门到应用完全指南(2)
本文深入讲解了C++中string类的常用接口。第一部分详细介绍了Capacity系列接口,包括max_size、capacity、reserve、shrink_to_fit和resize的功能及使用场景。第二部分讲解了Modifiers系列接口,涵盖push_back、append、operator+=、assign、insert、erase和replace等操作
2026-04-19 01:25:26
448
39
原创 【C++初阶】:STL——String从入门到应用完全指南(1)
本文主要介绍了C++中STL的String类的使用方法。首先讲解了String类的多种构造方式,包括默认构造、拷贝构造、子字符串构造等。然后详细说明了字符串的遍历和修改方法,包括下标访问、at访问以及越界检查。重点介绍了迭代器的概念和使用,包括正向迭代器、反向迭代器等。最后介绍了C++11中的auto语法和范围for循环这两个新特性,它们可以简化代码编写,提高开发效率。文章通过代码示例展示了这些功能的实际应用,帮助读者更好地理解和使用String类。
2026-04-18 16:21:41
591
40
原创 【C++初阶】C++编程基石:编码表&&STL的入门指南
标准模板库是C++标准库的重要组成部分,不仅是一个可复用的组件库,而且是一个包罗数据结构与算法的软件框架。在C++标准库中还有例如IO库,并发库等等,他们共同组成了C++的标准库。
2026-04-18 01:40:49
488
32
原创 【C++初阶】:泛型编程的代表作---C++初阶模板
在上一篇文章中,我们学习了C++的内存管理,学习了如何使用new/delete,他们两个的组成原理以及他们与C语言中malloc/free之间的关系和差别,那么今天我们就再来学习一个新的知识点---C++模板。
2026-04-17 22:40:35
715
43
原创 【C++ 初阶】:内存管理的迭代革新——从malloc/free 到 new/delete 的时代更迭
在此之前,我们已经花了三篇文章的大篇幅来讲解C++初阶中的“类和对象”这个基础的语法知识,很庆幸我们熬过了C++概念中的第一座大山(bushi)。俗话说:“人往高处走,水往低处流”。我们要继续进步继续前进,所以今天我们来学习C++中的内存管理,看看与C语言中的动态内存管理有何不同。
2026-04-16 12:28:06
686
48
原创 【C++初阶】:C++类和对象(下):构造函数promax & 类型转换 & static & 友元 & 内部类 & 匿名对象 & 超级优化
在上一篇文章中,我们学习了类和对象最核心的部分---类的默认成员函数。它们分别是:构造函数析构函数拷贝构造函数赋值运算符重载const成员函数以及取地址运算符重载,这六个函数是在程序员不显式写时编译器会自动生成的函数,那么今天我们就对他们剩下的边角料进行收尾。
2026-04-04 19:33:55
560
42
原创 【C++初阶】:C++类和对象(中):类的默认成员函数---万字解说(最主要的四点)
在上一篇文章中,我们学习了C++类和对象的“上”篇,学习了类的定义类的实例化以及this指针,文章的链接我会放在本篇文章的最后。今天这篇文章我们主要讲的是类和对象的核心部分,即类的默认成员函数,主要分为三大部分:初始化和清理,拷贝复制以及取地址重载。这些内容相对来说都比较晦涩难懂,看一遍看不懂的小伙伴可以多看几遍,话不多说,我们直接进入正题。
2026-03-24 12:59:44
798
81
原创 【C++初阶】:C++类和对象(上):类的定义 & 类的实例化 & this指针
类定义格式类其实我们不用把它看得太复杂,其实它就是一个加强版的结构体。类又是有什么构成的呢?//类中的内容//结构体中的内容这样一对比,两者其实非常相似。要注意的是,{}之后的分号不能被省略。下面我们通过数据结构中的栈(Stack)为例子为大家更详细地介绍类以及对象。//定义类//成员函数//成员变量int a;int top;Stack s1;//这里的Stack就是类,s1就是对象Stack s2;//s2也是对象return 0;在上面的代码中:class是。
2026-03-18 02:04:12
723
39
原创 【C++初阶】:C++入门相关知识(3):引用 & inline内联函数 & nullptr相关概念
引用不是定义一个新变量,而是给已经存在的变量起一个别名,那么编译器就不会为别名重新开辟空间,它和引用变量共同使用同一块空间。就好比我们把土豆称为马铃薯番茄称为西红柿类型& 别名 = 变量int a = 10;这样一来,num就是a的新名字,同时num的值也和a一样,是10。在这里呢,C++为了避免引用太多的符号,就会复用C语言中的一些符号,在引用中,&的含义是给变量起别名,而不是C语言中的取地址!//这是正确的,因为已经有了被饮用对象a。
2026-03-17 08:28:43
677
44
原创 【C++初阶】C++入门相关知识(2):输入输出 & 缺省参数 & 函数重载
C++ IO 流的最大优势之一是支持自定义类型的输入输出。int x, y;// 重载<<运算符,实现Point类型的输出std::cout << "点的坐标:" << p << std::endl;// 输出:点的坐标:(10, 20)return 0;这种可扩展性让 C++ IO 流成为面向对象编程的理想选择。1.6、面向对象的底层支撑:IO流的设计思想。
2026-03-03 18:41:34
888
59
原创 【C++初阶】C++入门相关知识(1):C++历史 & 第一个C++程序 & 命名空间
背景:1979年,Bjarne Stroustrup(本杰尼·斯特劳斯特鲁普)在贝尔实验室工作时,发现传统的C语言在项目开发时,存在有表达能力不足、可拓展性以及可维护性上有些欠缺,为此设计并开发了C++。
2026-02-12 18:42:21
1975
81
原创 【C语言进阶】文件操作的相关详解(1):
程序文件数据文件程序文件包括源程序文件(像C语言文件.c),目标文件(windows环境中后缀为.obj),以及可执行文件(.exe).文件的内容不一定是程序的运行文件,而是程序运行时读写的数据,比如程序运行时需要从中读取数据的文件,亦或是输出内容的文件。在本篇文章中我们主要讨论的是数据文件在此之前我们对数据的输入输出都是以终端为对象的,即从键盘输入输出,将数据打印到屏幕上,但是有时候我们会将数据输出到磁盘(硬盘)上,需要的时候再将数据从磁盘上读取出来,这样处理的就是磁盘上的文件。
2026-01-14 23:54:44
881
26
原创 【鼠鼠优选算法-双指针】003:快乐数 & 004:盛水最多的容器
假设有 n 个 “物品”,要放进 m 个 “抽屉” 里;如果 物品数 n > 抽屉数 m,那么至少有一个抽屉里会装着至少 2 个物品。这样子讲可能不好理解,那我们讲个例子来体会体会:由此可见,数字2最后并回不到1,所以它不是快乐数字,那我们不妨想一想,是不是每个数字最后都会循环到同一个数字上呢?即使不是它本身?
2026-01-09 20:30:28
1031
54
原创 【鼠鼠优选算法-双指针】001:移动零 & 002:复写零
在学习了这么多基础知识之后,我们就从今天开始操练一下我们的基本技能吧,先来两道简单的题目试试手:1.移动零:题目链接~~~2.复写零:复写零那我们就一题一题来讲讲吧~~~看到题目,这道题是想让我们将一个数组中的所有0移动到数组的末尾.题目意思明了,但是我们该怎么操作呢?在这道题中我们第一个想到的就是重新创建新的数组,将数值不为0的元素移动到新的数组中,但是题目明确要求说了,只能再原地进操作,我们该怎么实现这个操作呢?又不能创建新的数组不急,我有妙招.在这道题目中,我们可以用两个指针,current和dent
2026-01-05 20:37:40
1553
68
原创 【数据结构-初阶】二叉树---链式存储
🎈🔥个人专栏🌟上期回顾:在上一篇文章中,我们对二叉树的顺序存储结构进行了详细的学习,知道了二叉树的顺序存储结构方式是---也就是以堆的方式进行存储,那么我们想着,既然有顺序存储结构,那有没有链式的存储结构呢?答案是,有的兄弟,有的,那么这篇文章我们就来讲讲,二叉树的链式存储结构。
2025-12-31 16:08:48
1049
52
原创 【数据结构-初阶】二叉树(2)---堆
若规定根结点的层数为 1 ,则⼀棵⾮空⼆叉树的第i层上最多有 2^(i-1) 个结点若规定根节点的层数为1,则深度为h的二叉树的最大结点数是2^h-1如果规定的根结点的层数是1,具有n个结点的满二叉树的深度h=log2(n+1)[就是log为以2为底,n+1为对数]以上就是特殊二叉树的概念与基本性质的讲解了。
2025-12-24 21:23:23
1372
53
原创 【数据结构-初阶】二叉树(1)---树的相关概念
一、树的相关概念🎈🔥🌟),我们学习了初阶数据结构中的后一个线性表---队列,那么在初阶线性结构中线性表的内容我们就告一段落了,今天我们就进入到初阶段数据结构中的非线性表这块知识的学习.在这块知识中,我们会学习到树,但是还不学习图,这会等到我们学习C++语言的时候详细讲解在学习二叉树之前,我们要先了解一下什么是树一、树的相关概念讲到树,我们就能联想到平时生活中所看到的植物树,那我们今天要讲的树与平时看到的树有联系吗?有的兄弟,当然有,我们今天要将的树灵感就是来源于生活中的树。
2025-12-24 15:49:47
1440
55
原创 【数据结构-初阶】顺序表相关习题
这是题目链接:27.移除元素,下面是具体的题目与示例:由题意知,这道题是想让我们将数组中值为val的元素删除,我们能怎么做呢?创建新的数组?那不行,题目已经要求我们只能在原地进行操作了,就意味着不能创建新的数组来进行辅助那该怎么办呢?简单,我们只需用上算法中最基础的---双指针算法了我们用两个指针,刚开始都同事之下那个num数组的第一个元素,随后将其中一个指针用于遍历数组,如果两个指针指向的内容不相同,那就将内容进行交换,两个指针同时向后移动一位;如果相同,那就只有遍历的指针移动,下面是示意图:这时候我们只
2025-12-22 10:04:35
1374
54
原创 【数据结构-初阶】详解线性表(5)---队列
🎈🔥个人专栏🌟上期回顾:在上一篇文章()中我们讲到了在顺序表与链表之外的另一种线性表---栈,知道了这是一种具有先进后出和后进先出特点的数据结构,既然有先进后出,那么肯定就有先进先出的数据结构,所以这就是我们今天要讲的------队列。
2025-12-20 22:52:19
1880
83
原创 【数据结构-初阶】详解线性表(4)---栈
🎈🔥个人专栏🌟人为善,福随未至,祸已远行;人为恶,祸虽未至,福已远离一、栈的概念栈是一种特殊的线性表,它只允许在固定的一端进行插入和删除元素的操作。进行数据插入和删除的一端我们将其称之为栈顶,另一端不变的我们将其称之为栈底。站中的元素遵循后进先出LIFO(Last in fisrt out)的原则.插入操作进栈/压栈/入栈删除操作出栈了解了栈的基本特征之后,我们应该用什么样的方式来实现栈呢?是用数组还是链表呢?
2025-12-16 20:24:25
1528
38
原创 【数据结构-初阶】详解线性表(2)---单链表
概念链表是一种物理存储结构上非连续、非顺序的存储结构,数据的元素逻辑顺序是通过链表中的指针次序实现的。单单这样子讲大家可能会有些疑惑,链表到底是什么啊!!!不着急,我就拿火车来给大家举个例子吧。火车是有一节一节车厢的,每节车厢是由车厢之间的挂钩连接在一起的,那么链表的节点就相当于每节车厢,而每个节点里面所存放的指针就相当于车厢之间的挂钩链表中的每个节点都存放着当前节点的数组data,我们将其称之为---数据域,以及下一个节点的指针,我们将其称之为---指针域,
2025-12-11 02:10:50
1359
54
原创 【数据结构-初阶】详解线性表(1)---顺序表
🎈🔥个人专栏🌟人为善,福随未至,祸已远行;人为恶,祸虽未至,福已远离),我们已经学习了判断一个算法程序好与坏的方法:时间复杂度与空间复杂度,那么现在我们继续向下面学习数据结构的新知识:线性表中的顺序表在介绍顺序表之前,我们先来了解线性表的概念。
2025-12-07 13:17:52
1906
49
原创 【数据结构-初阶】详解算法复杂度:时间与空间复杂度
古人云:“欲向锋前陈锦绣,先从纸上灿珠玑”,在进行下一阶段的学习之前,我想先写一段前言。在之前的学习中,我们将C语言的基本知识进行了系统的学习(但是博客没有进行及时的更新,后面会补上的嘻嘻嘻),那么接下来我们就将会进入到初阶数据结构与算法的学习,在学习数据结构之前,我们要将C语言中的指针(一级指针,二级指针)、函数、结构体,动态内存管理、函数栈帧的创建与销毁先进行系统性的学习之后才能在数据结构中游刃有余,不会显得非常吃力,我也会将这一部分的内容陆续更新到我的博客当中。
2025-12-03 23:33:01
1458
36
原创 【程序设计】P8772 [蓝桥杯 2022 省 A] 求和
由此可见,这个时间复杂度是非常大的,那我们能不能优化一下呢?现在来分析一下我们代码的时间复杂度:有两个循环其那套在一起,加上一个循环输入,那么整体的时间复杂度就是。可见,代码的思路没有问题,但是仅仅对了三道题而已,剩下的都是。那就是我们的程序的时间复杂度太高了,运行时间超时了。以上是博主自己的拙见,欢迎大佬们提供更好的解决方案!哈哈,这样子写就通过了。用大O渐进表示法就是。
2025-11-29 14:08:00
790
29
原创 【强化训练】简写单词
根据题目,我们要先输入一行带空格的字符串,然后对每个单词进行分割,最后输出单词的首字母。直接输入单词,而不是当成字符串来输入。
2025-11-13 20:43:18
252
20
原创 【程序设计】旋转数组
O(k*numSize),当k==numSize时,时间复杂度可以看成O(numSize^2),这就是一个非常大的数字了,这不超时才怪咧,那我们要怎么优化呢?这样看,是通过了,说明这次的时间复杂度要比之前低,运行效率提升了,但是,根据力扣反馈回来的数据,可见我们目前的代码依旧是不算得优秀,那还能怎么修改代码呢?我们代码的时间复杂度主要是在旋转函数中,根据观察可以得出,旋转函数的时间复杂度为。
2025-11-11 17:43:01
662
15
原创 【C语言进阶】字符函数与字符串函数1-万字解说
长风破浪会会有时,直挂云帆济沧海,今天哟又是适合学习的一天~我们在编写C语言代码的时候,经常要处理有关字符和字符串的问题,那么本篇文章就来总结一下我们常用到的字符和字符串函数吧~
2025-11-09 17:45:58
1618
15
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅