自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Linux 进程基础全解析:fork、exec、wait 的实战与原理

本文介绍了Linux系统编程中的核心概念——进程。文章首先区分了程序(静态文件)与进程(动态执行),然后详细讲解了进程管理命令(如ps、top等)。重点阐述了进程创建(fork())、退出(exit()/_exit())、回收(wait()/waitpid())和替换(exec系列函数)的实现机制与代码示例。最后解释了进程组、会话和终端的关系,帮助理解进程在操作系统中的运行原理。通过理论结合实践的方式,全面介绍了Linux进程管理的核心知识点。

2025-10-09 18:58:37 468

原创 C++ 运算符重载与友元:实现优雅直观的类操作

友元机制是 C++ 提供的一把双刃剑。它在特定场景下(如运算符重载、实现某些需要紧密协作的设计模式)非常有用,为我们提供了必要的灵活性。但它也确实打破了类的封装性,如果被滥用,会增加类之间的耦合度,使代码结构变得混乱,难以维护。因此,在使用友元时,我们应时刻保持警惕,确保这是解决当前问题的唯一或最佳途径,而不是简单地为了图方便而随意授权。运算符重载是 C++ 赋予开发者的一项强大能力,它让我们能够编写出更具表现力、更符合人类直觉的代码。通过理解其函数调用的本质,掌握成员函数与非成员/友元函数。

2025-09-30 15:27:42 681

原创 开启C++新世界:从函数到对象的两天思维跃迁

C++与C的本质区别在于编程范式与功能扩展。C是面向过程的函数式语言,而C++支持面向对象编程(封装、继承、多态),并引入引用、模板和STL标准库等特性。C++推荐使用new/delete管理内存,自动调用构造/析构函数,更安全。std::string类简化了字符串操作,体现了封装思想。类通过访问权限实现封装,推荐成员变量私有化。对象创建分栈(自动管理)和堆(手动new/delete),sizeof(Class)遵循内存对齐规则。static成员实现类级别共享,静态变量需类外初始化。这些特性使C++更适合构

2025-09-29 17:00:57 494

原创 《C++多继承与虚表机制详解:从菱形继承到虚继承的全面解析》

本文深入解析C++面向对象编程中的继承机制与多态实现。主要内容包括:1)多源继承的虚函数表管理机制,子类会维护多个虚表,同名函数会覆盖基类实现;2)菱形继承问题及其解决方案(虚继承);3)虚函数表(vtable)的底层实现原理和动态绑定机制;4)虚析构函数的重要性;5)纯虚函数与抽象类的特性。文章通过代码示例详细展示了继承体系中的内存布局和函数调用过程,为理解C++多态机制提供了实践指导。掌握这些核心概念有助于设计健壮的类层次结构,避免常见陷阱。

2025-09-29 16:09:09 568

原创 C++ 继承与派生详解:从概念到代码实战

本文详细介绍了C++中面向对象编程的核心概念——继承与派生。主要内容包括:三种继承方式(public/protected/private)的特点及访问权限控制;继承关系中构造与析构函数的调用顺序(先基类后派生类);派生类对基类成员的访问规则(可访问public/protected成员,不可访问private成员)。通过示例代码展示了继承的实际应用,强调继承机制在代码复用和功能扩展中的重要作用。掌握这些知识点有助于编写更清晰、可维护的面向对象程序。

2025-09-26 19:58:50 778

原创 深入理解C++对象生命周期:构造、拷贝与析构

摘要:C++对象生命周期的核心由构造函数、拷贝构造函数和析构函数构成。构造函数负责对象初始化,析构函数处理资源释放,拷贝构造函数实现对象克隆。特别需要注意的是深拷贝与浅拷贝的区别:默认拷贝构造函数执行浅拷贝仅复制指针地址,而深拷贝需要手动分配新内存并复制内容。当类包含指针等动态资源时,必须实现深拷贝以避免内存问题。通过成员初始化列表和构造函数体的配合,可以高效完成对象初始化和资源申请,而析构函数则确保资源的正确释放。这三个函数共同构成了C++对象资源管理的基石。

2025-09-24 14:03:07 544

原创 一个int数组,里面数据无任何限制,要求求出所有这样的数 a[i],其左边的数都小于等于它,右边的数都大于等于它。

【代码】一个int数组,里面数据无任何限制,要求求出所有这样的数 a[i],其左边的数都小于等于它,右边的数都大于等于它。

2025-09-09 17:04:46 241

原创 网络数据传输方式:广播接收端

需要完整头文件可以评论区私。

2025-09-09 09:46:24 113

原创 将一个二维N*N矩阵顺时针旋转90°,例如a[2][2]={1,2,3,4},旋转过后a[2][2]={4,1,3,2}。

【代码】将一个二维N*N矩阵顺时针旋转90°,例如a[2][2]={1,2,3,4},旋转过后a[2][2]={4,1,3,2}。

2025-09-09 01:10:37 568

原创 如果两个字符串的字符一样,但是顺序不一样,被认为是兄弟字符串,问如何在迅速匹配兄弟字符串(如,bad 和 adb 就是兄弟字符串)。思路:判断各自素数乘积是否相等。字符计数法

【代码】如果两个字符串的字符一样,但是顺序不一样,被认为是兄弟字符串,问如何在迅速匹配兄弟字符串(如,bad 和 adb 就是兄弟字符串)。思路:判断各自素数乘积是否相等。字符计数法。

2025-09-09 00:56:16 329

原创 数组循环右移(旋转)三次反转法

【代码】数组循环右移(旋转)三次反转法。

2025-09-08 20:58:36 242

原创 二叉树运行链式队列层式遍历详细代码

【代码】二叉树运行链式队列层式遍历详细代码。

2025-05-12 18:20:32 199

原创 链式队列的创建,入队,出队,回收详细代码

【代码】链式队列的创建,入队,出队,回收详细代码。

2025-05-12 17:23:46 299

原创 链表栈的创建,出栈,入栈,回收详细代码

【代码】链表栈的创建,出栈,入栈,回收详细代码。

2025-05-06 11:30:13 477

原创 顺序队列的创建,入队,出队,回收队的详细代码

【代码】顺序队列的创建,入队,出队,回收队的详细代码。

2025-05-05 22:08:10 167

原创 顺序栈的创建,入栈,出栈

【代码】顺序栈的创建,入栈,出栈。

2025-05-05 15:51:24 437

原创 二叉树结点查询,删除,更新详细代码

【代码】二叉树结点查询,删除,更新详细代码。

2025-05-05 14:29:03 317

原创 二叉树删除结点详细代码

【代码】二叉树删除结点详细代码。

2025-05-01 14:45:16 381

原创 二叉树创建,增加,查询,回收,前序,后序,中序遍历

【代码】二叉树创建,增加,查询,回收,前序,后序,中序遍历。

2025-04-30 15:47:16 582

原创 二叉树的创建,增加,前序遍历

【代码】二叉树的创建,增加,前序遍历。

2025-04-24 18:18:24 334

原创 环状双向链表创建,删除,插入,遍历详细讲解

【代码】环状双向链表创建,删除,插入,遍历详细讲解。

2025-04-16 21:14:04 201

原创 环形单向链表创建,删除,回收,遍历,插入节点详细代码

【代码】环形单向链表创建,删除,回收,遍历,后插节点详细代码。

2025-04-16 18:51:51 337

原创 双向链表中间插入节点,删除节点

【代码】双向链表中间插入节点,删除节点。

2025-04-14 21:46:12 314

原创 一维前缀和二维前缀和讲解

前缀和是一种用于快速计算数组中子数组和的技巧,它的核心思想是通过预先计算一个数组的前缀和数组,使得后续的区间和查询可以在常数时间内完成。

2025-04-05 12:43:01 514

原创 二分法查找详解

设定数组的左右边界,左边界为数组的起始索引(通常为 0),右边界为数组的结束索引(通常为数组长度减 1)。:直到找到目标值或搜索范围为空(即左边界大于右边界),此时查找失败,返回 -1 或其他表示未找到的标志。如果目标值等于中间位置的值,则查找成功,返回中间位置的索引。:在每次查找中,计算当前搜索范围的中间位置(如果目标值小于中间位置的值,则调整右边界为。如果目标值大于中间位置的值,则调整左边界为。,继续在左半部分查找。,继续在右半部分查找。

2025-04-03 21:52:37 1061

原创 快速排序详解

快速排序是一种高效的排序算法,基于分治法的思想。其核心是选择一个基准值,将序列分为两部分:比基准小的元素放在左边,比基准大的元素放在右边。然后递归地对左右两部分进行相同操作,直到整个序列有序。快速排序具有高效性(平均时间复杂度为 O(nlogn))和原地排序的特点,但最坏情况下时间复杂度为 O(n2)。它是一种分而治之、递归排序的高效算法。

2025-04-03 21:32:59 242

原创 插入排序详细讲解

【代码】插入排序详细讲解。

2025-04-03 15:39:25 352

原创 数据结构中双向链表插入中间节点

【代码】数据结构中双向链表插入中间节点。

2025-03-26 16:20:54 575

原创 数据结构中双向链表头插尾插与遍历节点

【代码】数据结构中双向链表头插尾插与遍历节点。

2025-03-24 20:30:26 323

原创 数据结构中双向链表头插节点

【代码】数据结构中双向链表头插节点。

2025-03-24 19:53:54 142

原创 数据结构实现单向链表中中间插入节点

【代码】数据结构实现单向链表中中间插入节点。

2025-03-24 17:04:10 308

原创 数据结构中链表回收

【代码】数据结构中链表回收。

2025-03-22 15:50:31 160

原创 数据结构中链表的节点删除

【代码】数据结构中链表的节点删除。

2025-03-22 15:22:45 288

原创 数据结构中链表查询

【代码】数据结构中链表查询。

2025-03-22 14:09:10 332

原创 数据结构中链表的头插尾插与遍历

【代码】数据结构中链表的头插尾插与遍历。

2025-03-22 11:59:06 424

原创 数据结构双向链表的创建与初始化

【代码】数据结构双向链表的创建与初始化。

2025-03-21 18:46:09 487

原创 数据结构中单向链表的初始化与创建

【代码】数据结构中单向链表的初始化与创建。

2025-03-20 20:33:32 305

原创 C语言动态内存管理精简版(运用calloc,realloc,mencpy,memcmp函数)

【代码】C语言动态内存管理精简版(运用calloc,realloc,mencpy,memcmp函数)

2025-03-18 15:17:23 472

原创 C语言动态内存管理(运用calloc,realloc函数)

【代码】C语言动态内存管理(运用calloc,realloc函数)

2025-03-18 11:20:55 392

原创 C语言中运用指针数组进行数组外排序

【代码】C语言中运用指针数组进行数组外排序。

2025-03-13 21:00:59 287

空空如也

空空如也

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

TA关注的人

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