自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【C++ STL】set、multiset、map、multimap 深度解析:底层原理、核心接口与实战应用

C++ STL 容器可以从数据组织方式上进行分类。序列式容器vectorlistdequearray这些容器主要按照元素的位置组织数据。关联式容器setmultisetmapmultimap它们主要按照关键字(key)组织数据,并支持基于关键字的高效查找。对于vector30 10 20对于默认升序的set10 20 30这是因为set会根据关键字的比较关系组织元素。由于map能够在频率相同时保留原来的字典序。这就是稳定排序的实际应用。sort()不保证保留等价元素的原始顺序。

2026-11-03 21:05:11 158

原创 【C++ 数据结构】二叉搜索树(BST)深度解析:原理、增删查实现、深拷贝与常见陷阱

二叉搜索树(Binary Search Tree,简称 BST),又称二叉排序树。左子树所有节点的键值小于根节点键值。右子树所有节点的键值大于根节点键值。左右子树本身也必须是二叉搜索树。对于本文实现的、不允许重复键值的 BST:\boxed{左子树 < 根节点 < 右子树}如果允许重复键值,比较规则需要另外约定。比如允许相等键值进入右子树,但必须始终保持一致。public:// Insert、Find、Erase 等成员函数private:只是给类型起了别名。

2026-11-01 19:52:30 130

原创 C++ 多态深入解析:虚函数重写、抽象类、虚函数表与底层内存布局

多态(Polymorphism)的字面含义是“多种形态”。在 C++ 中,多态表现为:相同的操作,根据对象或参数的不同,产生不同的行为。普通人买票:全价。学生买票:打折。军人买票:优先购票。虽然都是调用,但不同对象会表现出不同的行为。C++ 多态主要可以分为两类。分类编译时多态(静态多态)运行时多态(动态多态)主要机制函数重载、函数模板等虚函数确定调用目标的时机编译期通常在运行期是否要求继承不要求典型实现需要主要特点根据编译期信息确定操作。

2026-10-29 17:50:04 37

原创 【C++】继承详解:从基础语法、对象模型到菱形虚继承(附原理图与易错点

Student:姓名、年龄、学号、学习行为。Teacher:姓名、年龄、职工编号、授课行为。如果完全独立设计这两个类,就需要重复定义姓名、年龄、身份认证等成员。为了减少重复,可以把共同部分提取出来,形成一个基类Person。public:protected:string _name = "张三";public:protected:对应的继承关系:fill:#333;important;important;

2026-10-28 19:25:52 336

原创 从命令到系统:Linux 命令行环境系统学习笔记

Shell 是用户与操作系统交互的一种命令解释器。ls -lShell 读取用户输入。Shell 解析命令和参数。Shell 找到需要执行的程序。启动程序并建立输入输出连接。程序执行,通过操作系统接口完成工作。结果显示在终端。fill:#333;important;important;fill:none;color:#333;color:#333;important;fill:none;fill:#333;height:1em;用户输入命令Shell 解析命令查找并启动程序。

2026-10-14 00:02:02 289

原创 从零理解 Shell:我的 Missing Semester 2026 学习笔记(一)

本文为学习MIT《MissingSemester》2026版Shell入门课程的笔记,系统梳理了Shell与Bash的基础概念、文件路径、环境变量、文本处理工具(grep、sed、find、awk)、管道重定向、条件判断、循环算术运算及完整脚本编写。重点解析了命令执行原理、退出状态机制、特殊符号含义与常见误区,如if以0表示成功、{}为find占位符、$?与$!用途等。通过实践编写C++文件搜索脚本,掌握变量、命令替换、日志记录与自动化流程设计。强调理解而非记忆,旨在将Shell融入日常开发,实现高效自动化

2026-10-13 00:46:27 288

原创 C++入门基础知识(上)

namespace关键字+命名空间的名字+{},可以定义变量、函数、类等类型。这些变量,函数,类等结为全局类型,生命周期不受namespace的影响。//变量int Add(int left, int right)//函数struct Node//类int val;本质是定义出一个域,这个域跟全局域各自独立,不同的域可以定义同名变量,所以bit域与全局域中的rand不在冲突了。3.C++中变量的查找逻辑是就近原则:先局部再全局,如要改变这个规则就需要使用。关于与作用限定符,如果。

2025-07-15 01:21:52 849

原创 算法复杂度

我们一般认为:“程序=算法+数据结构”,其中算法(Algorithm)就是指对特定问题求解步骤的一种描述,是指令的有限序列。而我们在衡量算法性能的主要对象是时间复杂度,空间复杂度一般不讨论。一般二者属于是一个竞争的关系:要么用空间换时间,要么用时间换空间。下面我将二者展开说说。二、时间复杂度1.定义在计算机科学中,算法的时间复杂度是一个函数式T(N),它定量描述了该算法的运行时间。时间复杂度是衡量程序的时间效率,那么为什么不去计算程序的运行时间呢?

2024-11-30 22:51:06 719

原创 printf和scanf的辨析

printf() 的作用是将参数文本输出到屏幕。它名字里面的f代表 format (格式化),表示可以定制输出文本的格式。作为库函数,使用前需要包含,函数的返回值是。运行结果:此处光标移到了下一行。运行结果:\t也是一种字符,故要+1。printf() 不会在行尾自动添加换行符,运行结束后,光标就停留在输出结束的地放,不会自动换 行。为了让光标移到下一行的开头,可以在输出文本的结尾,添加⼀个。如若让光标空开一个tab键,则可以添加一个。

2024-11-11 10:25:50 509

原创 sizeof和strlen的辨析

首先我们要明确sizeof是一个用来计算所占空间大小的运算符,其运算结果的单位为。下面举例说明。

2024-11-10 11:04:14 285 3

原创 数组的零零碎碎

数组(Array)是有序的元素序列,是的元素按排列的集合。注意:1.数组中的多个元素数据类型是相同的2.数组按照一定顺序排列(与后文数组的使用和储存相呼应)

2024-10-26 19:53:16 890 1

原创 再忆分支与循环语句(上)

分支与循环

2024-10-24 23:53:45 368 1

空空如也

空空如也

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

TA关注的人

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