自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【Linux我做主】yum与vim详解:一行命令搞定简单配置vim

本文介绍Linux中的包管理工具yum和文本编辑器vim,带你一行命令配置vim。

2025-03-17 19:42:05 1144 23

原创 【Linux我做主】基础命令完全指南下篇

本文详细介绍Linux系统一些进阶命令的使用,更多用法需结合man手册进行查询。

2025-03-16 19:03:56 1204 17

原创 【Linux我做主】基础命令完全指南上篇

本文介绍`Linux系统`的基本知识和一些常见命令的基本使用,命令的更多用法需结合man手册进行查询。

2025-03-15 19:24:48 1794 26

原创 【Linux我做主】浅谈Shell及其原理

本文深入解析Shell的核心原理与高效使用技巧,帮助读者掌握这一重要工具

2025-03-14 19:10:01 1339 13

原创 深入浅出C++ STL:统领STL全局

全面解析STL的核心概念、应用场景及学习路径。

2025-03-13 18:23:16 956 26

原创 C++11语法糖:auto和范围for循环详解

本文简单介绍C++11中的语法糖:auto和范围for循环的使用

2025-03-08 19:19:42 923 22

原创 C++类和对象:匿名对象及连续构造拷贝编译器的优化

C++类和对象的细节:匿名对象和连续构造拷贝时编译器的优化。

2025-03-02 19:29:54 1044 18

原创 【Linux我做主】从UNIX到Linux:操作系统进化史与开源革命

操作系统(OS)是计算机系统的核心管理者,承担着三大核心使命:

2025-03-01 19:33:47 1419 6

原创 C/C++内存管理:深入理解new和delete

本文针对C/C++以及操作系统的内存管理,深入探索动态内存管理。

2025-02-28 19:53:01 1415 20

原创 C++模板详解(1):泛型编程的核心工具

泛型编程:编写与类型无关的通用代码,是代码复用的一种手段。模板是泛型编程的基础。

2025-02-27 12:55:05 848 20

原创 C++类和对象实战:实现一个日期类

本文通过实现一个日期类,综合运用构造函数、运算符重载、友元函数等C++特性,帮助读者巩固面向对象编程知识。我们将实现日期的基本操作,包括日期比较、日期加减、流输入输出等功能。

2025-02-22 14:24:08 650 21

原创 C++类和对象进阶:初始化列表和static成员深度详解

本文深度详解关于C++构造函数的初始化列表和C++类中的static成员,其中static成员包含static成员变量和static成员函数,以及介绍static的相关实践场景。

2025-02-22 14:22:12 953 9

原创 C++类和对象进阶:const及取地址重载深度解析

本文将介绍const成员函数和C++6个默认成员函数中的最后两个,取地址重载操作符重载和const取地址重载。

2025-02-17 14:28:05 908 11

原创 C++类和对象进阶:运算符重载深度详解

在C++中,运算符重载允许我们为自定义类型赋予与内置类型相似的操作方式,极大提升了代码的可读性和灵活性。本文将深入探讨运算符重载的规则与实现,并重点分析==默认成员函数之一的赋值运算符重载函数。

2025-02-13 18:19:00 1034 12

原创 C++类和对象进阶:拷贝构造函数深度详解

本文详解类的六个默认成员函数中的第三个,带你认识不一样的拷贝构造函数,并辨析区分深拷贝与浅拷贝。

2025-02-13 10:19:22 940 8

原创 C++引用深度详解

本文深度探索引用的各种用法和特性。介绍引用的语法,核心特性,引用的权限控制,常引用以及引用的各种使用场景。

2025-02-11 20:24:10 1086 21

原创 C++类和对象进阶:构造函数和析构函数详解

本文重点解析构造函数、析构函数的核心用法与原理。并对默认构造函数深入理解。

2025-02-09 11:41:11 1375 10

原创 C++:类和对象初识

万字长文,初步详解类和对象!

2025-02-08 12:20:58 1304 8

原创 C++11特性:指针空值 nullptr

在 C++11 中,`nullptr` 被引入为一种新的空指针类型,目的是替代传统的 `NULL` 宏,以便更清晰和更安全地表示空指针。`nullptr` 不仅解决了 `NULL` 可能引发的歧义,还增加了对类型安全的支持。本文将详细介绍 `nullptr` 的背景、特性和使用场景。

2025-02-07 10:49:33 708 8

原创 带头双向循环链表详解

链表的最终形态,带头双向循环链表!

2025-02-06 20:58:51 965 2

原创 C++ 支持重载的原理

本文探讨了 C++ 支持函数重载的原理,重点介绍了名称修饰(Name Mangling)如何实现同名函数的区分。编译器通过在函数名中添加参数类型信息来区分不同参数类型的同名函数,从而实现重载功能。文章首先介绍了程序的生成过程,包括预处理、编译、汇编和链接四个步骤,阐明了链接器如何通过符号表解决不同源文件间的函数调用问题。

2025-02-05 20:25:22 917 1

原创 C++函数进阶:缺省参数、重载与内联函数

本文将深入探讨C++中函数的三个重要特性:缺省参数、函数重载和内联函数,揭秘它们的工作原理与最佳实践。

2025-02-05 17:35:05 978 1

原创 树及其二叉树结构阐述(C语言)

通常的方法是链表中每个结点由三个域组成,数据域和左右指针域,左右指针分别用来给出该结点左孩子和右孩子所在的链结点的存储地址。可以看出,该结构中我们定义了一个结构,结构内包含两个指针和一个数据位。这样,每个结点内只需定义两个指针,就可以表示含有无穷多个节点的树了。它既节省空间,又方便用数组存储,是很多算法(如堆排序)的基础结构。以上即为树相关的所有概念,其中重点需要记忆的概念我已经用黄色重点标出,其余概念能够辨识即可。提前剧透一下,二叉树的顺序存储也就成为了堆,二叉树的链式存储采用的是二叉链表。

2025-02-04 12:59:18 927 1

原创 顺序表和链表对比

单链表适合需要频繁插入和删除、数据量不确定的场景,尤其是动态链表数据结构(如队列、栈)。顺序表适合数据量较小、访问较频繁、数据不经常变动的场景(如静态集合或数组)。选择哪个数据结构取决于应用的具体需求,例如,如果需要频繁地插入和删除数据,链表可能更合适;如果需要频繁地访问数据,顺序表会更加高效。

2025-01-26 16:09:33 667 1

原创 单链表C语言实现

SListNode;以上定义了单链表的结点,结点内存储两个数据。一个数据是我们实际要存储的数据,另一个是一个指针变量,是指向结构体的指针,存储下一个结点的地址。链表的链式结构正是通过指针来实现的。如图所示。设置一个指针变量存储第一个结点的地址每个结点中,存储了数据 和 下一个结点的地址地址由结构体指针来存储我们可以访问结构体中的指针来获取地址,实现对下一个结点的访问。若需频繁插入/删除、数据规模动态变化,且不需要随机访问(如实现 LRU 缓存、消息队列)。

2025-01-26 16:04:28 1106 2

原创 C++命名空间和流式IO

命名空间通过namespace关键字定义,后面接命名空间名称和一对大括号,括号内为命名空间的成员。// _rand是命名空间的名字,一般开发中是用项目名字做命名空间名。// 命名空间中可以定义变量 /函数 /类型int name;char ch;

2025-01-21 21:47:08 820 5

原创 数据结构之栈(C语言版)

栈:是一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。栈顶:进行数据插入和删除操作的一端栈底:另一端称为栈底压栈:栈的插入操作叫做进栈/压栈/入栈,入数据在栈顶。出栈:栈的删除操作叫做出栈。出数据也在栈顶。栈中的数据元素遵守**后进先出LIFO(LastInFirstOut)**的原则。如图所示:栈也是一种常见的数据结构,其本质是特殊的线性表。本篇中,笔者将使用C语言,采用顺序表的形式来实现栈。并利用C语言实现的栈实现括号匹配。

2025-01-19 20:46:44 1061 1

原创 动态顺序表

4// 给顺序表一个初始大小//定义顺序表数据类型////静态顺序表 开少了不够用 开多了浪费//};//动态顺序表 动态扩容 开辟内存在堆区 没必要用柔性数组//动态数组的基地址int size;//有效数据个数 size是 最后一个元素的下一个位置的下标//空间容量}SeqList;此处阐释静态顺序表的劣势。静态顺序表开辟的空间是固定的,开辟空间过少,不够存储, 开辟空间过多, 造成空间的浪费。因此在实际使用的过程中,使用动态顺序表居多。

2024-12-01 12:40:18 1381 3

原创 动态顺序表(动态扩容)

10//默认最大长度//顺序表的最大容量int length;//顺序表的当前长度int* data;//指向动态分配数组的指针}SeqList;由于malloc函数返回的是所申请空间的地址,因此我们需要用指针来接受,还是那句话,为了方便起见,我们用 int* 来接收。

2024-07-31 18:19:05 1840 2

原创 静态顺序表

10//定义数组来存储数据int length;//length表示当前表的长度}Sqlist;在结构体中,我们声明了一个数组用来存放数据,为了方便起见,笔者将数组的数据类型规定成了 int , 实际上,顺序表中的元素可以是任何数据类型。我们将顺序表定义在结构体内,是为了更方便一点。因为这样我们不仅可以存储所有的数据,还可以补充存储关于顺序表的某些信息(视需求而定), 这些另外存储的信息可以帮助我们更好的操作顺序表(其他数据结构也是类似)。

2024-07-30 21:21:11 1378 6

空空如也

空空如也

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

TA关注的人

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