自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

此生决int的博客

大二,计算机科学与技术学生,又是追梦的一天!

  • 博客(51)
  • 收藏
  • 关注

原创 Linux系列(09)——基础IO

本文深入讲解Linux文件I/O机制,涵盖“一切皆文件”理念、C标准库与系统调用的文件操作差异、文件描述符fd的作用,以及重定向与缓冲区原理。通过实例解析open/read/write等系统调用,揭示进程如何通过fd管理文件,并结合dup2说明Shell重定向实现机制,帮助读者掌握底层I/O核心概念。

2026-11-07 09:00:00 135

原创 Linux系列(08)——进程控制

本文为博主“此生弃int”在CSDN博客发布的《进程控制》系列文章,系统讲解了进程创建(fork接口、内部机制、常见用法及失败原因)与进程终止(正常退出方式、退出码含义、信号终止及其对应退出码如130、143等)。强调fork负责创建进程,exec用于替换程序;指出退出码由程序自定义,0表示成功,非零代表不同错误类型;解析了信号终止时的特殊退出码生成规则,帮助读者深入理解进程生命周期管理。

2026-11-05 22:07:54 207

原创 Linux系统(07)——进程概念(下)

本节核心围绕进程这一操作系统核心概念展开,涵盖冯诺依曼体系、操作系统管理思想、进程描述与组织、进程状态与调度、环境变量以及虚拟地址空间等关键知识点。模块核心要点冯诺依曼体系所有设备只能直接和内存打交道操作系统"搞管理"的软件:先描述(struct),再组织(链表/红黑树)进程概念进程 = task_struct(PCB)+ 程序代码和数据进程状态R(运行)、S(可中断睡眠)、D(不可中断睡眠)、T(停止)、X(死亡)、Z(僵尸)特殊进程。

2026-10-14 08:00:00 763 39

原创 Linux系列(06)——进程概念(上)

本文介绍了冯诺依曼体系结构与操作系统核心概念,重点讲解了进程的定义、PCB(task_struct)的作用及进程管理机制。通过ps、kill等命令和getpid、getppid、fork系统调用,深入理解进程的查看、控制与创建。强调内存为核心数据交换中心,揭示进程是资源分配的基本单位,为后续学习进程调度、文件系统等打下基础。

2026-10-12 12:10:37 673 25

原创 Linux系列(05)——基础开发工具(下)makefile、git、gdb

本文介绍了 make 与 Makefile 在自动化构建中的核心作用。通过依赖关系与依赖方法,实现高效编译管理,避免重复编译。重点讲解了 Makefile 的基本语法、伪目标 .PHONY 的使用、文件时间比较机制及依赖链的推导逻辑。结合变量扩展,提升可维护性,助力大型项目高效构建。

2026-10-08 17:35:31 963 26

原创 Linux系列(04)——基础开发工具(上)软件包管理器、vim、gcc/g++

本文介绍了Linux基础开发工具,重点讲解了软件包管理器yum/apt的使用方法及差异,涵盖安装、卸载、更新等操作,并解析了包名与源配置。随后深入讲解vim编辑器的三模式(命令、插入、末行)及其核心命令,如移动、删除、复制、查找与保存退出等,帮助读者快速掌握高效文本编辑技能。

2026-10-07 12:53:37 1077 29

原创 Linux系统(02)——所有基本指令全解(零基础详解版)

写法作用原文件存在时输出重定向覆盖原内容>>输出追加保留原内容,在末尾追加2,重定向并不只适用于echo重定向是 Shell 提供的一种通用机制,而不是echo专属功能。很多命令都会产生标准输出。

2026-10-01 20:39:09 1416 27

原创 深入理解C++系列(22)——智能指针的

本文深入解析智能指针的使用场景与原理,强调手动管理内存易导致泄漏的问题。通过RAII思想,引入unique_ptr(独占)、shared_ptr(引用计数共享)和weak_ptr(解决循环引用)三种标准库智能指针,分别实现资源自动释放。重点剖析了shared_ptr的引用计数机制及循环引用缺陷,并以weak_ptr破局,结合代码示例详述其底层原理与应用技巧,全面揭示智能指针如何保障内存安全。

2026-09-23 22:43:58 775 36

原创 深入理解C++系列(21)——异常

本文系统讲解C++异常处理机制,涵盖异常概念、throw/try/catch使用、栈展开原理及局部对象析构的RAII思想。重点解析异常匹配规则、类型一致性要求、异常重新抛出(throw;与throw e;区别)、异常安全与资源管理,并介绍异常规范,强调避免资源泄漏与对象切片,确保程序健壮性。

2026-09-21 15:23:44 958 37

原创 深入理解C++系列(20)——C++11(下)

本文继续解析C++11新特性,重点介绍可变参数模板及其应用,如emplace_back高效构造对象的原理;同时讲解默认移动构造/赋值、成员变量初始化缺省值、default与delete关键字的使用,强调现代C++中应优先采用emplace系列接口以提升性能,全面优化资源管理与代码效率。

2026-09-19 18:00:00 598 21

原创 深入理解C++系列(19)——C++11(上)

本文介绍了C++11的重要特性,重点讲解了列表初始化与std::initializer_list的使用,实现统一初始化语法;深入剖析左值、右值概念及其区别,引出右值引用与移动语义的核心思想——避免资源复制,直接“接管”临时对象资源,提升性能。文章强调C++11是现代C++的关键里程碑,为高效编程奠定基础。

2026-09-18 21:56:57 656 34

原创 深入理解C++系列(17)——封装map和set

<think>我们根据要求生成≤150字的摘要。用户提供了一篇CSDN博客内容,讲封装map和set,基于红黑树。需要生成简洁摘要。注意字数限制。内容要点:复用红黑树,仿函数KeyOfT,节点存T,迭代器++/--。摘要需不超过150字,中文。 撰写摘要:本文基于红黑树封装map和set,通过仿函数KeyOfT从不同类型中提取键值,节点统一存储T类型,实现容器复用;并实现支持中序遍序的迭代器,重点分析operator++/--的路径选择。保持简明。</think>本文基于红黑树封装map和set,通过仿函数

2026-09-07 13:00:39 247 13

原创 深入理解C++系列(16)——红黑树的深度解析及模拟实现

<think>我们根据用户提供的内容,需要生成≤150字的文章摘要。用户要求“根据以下内容,生成≤150字的文章摘要”。内容是关于红黑树的博客文章,包括博主信息、目录、简要介绍红黑树定义、规则、实现等。需要生成摘要,不超过150字。 我们要从长文中提取关键信息:红黑树是对二叉搜索树的优化,避免一边倒;通过节点颜色(红/黑)和4条规则保证平衡;插入时节点为红色,遇到红父红叔时变色,叔叔黑/不存在时旋转+变色;最终保证树高约logN。博主是“此生决int-@CSDN博客”,文章属于“深入理解 C++ 系列”等。

2026-09-05 23:11:51 405 36

原创 深入理解C++系列(15)——AVL树

文章摘要: 本文介绍了AVL树的基本概念与实现方法。AVL树是一种高度平衡的二叉搜索树,要求任何子树的左右高度差不超过1。文章重点讲解了AVL树的插入操作实现细节,特别是平衡因子维护的三种情况处理:当平衡因子变为0时无需更新;变为1/-1时需要向上更新父节点;变为2/-2时需通过旋转调整。详细分析了四种旋转场景(左单旋、右单旋、左右双旋、右左双旋),并给出右单旋的代码实现。通过平衡因子维护和旋转操作,AVL树能始终保持logN级别的查询效率。

2026-08-24 22:25:19 624 21

原创 深入理解C++系列(14)——map和set的使用

总结:1,set第一个参数为键值,,默认小根,如果要大根,第二个参数传仿函数,set<T,Greater>3,增删查效率是 O(logN),不支持改!!与set几乎一样,只是第一个参数变成了pair类型第一个参数是一个pair类型,第二个是仿函数//注意,mp里面的第一个参数是const修饰的,不能修改哦,普通的pair是可以修改的普通pair的底层实现T1 first;T2 second;T2 second;

2026-08-21 23:13:02 1169 39

原创 深入理解C++系列(13)——二叉搜索树

1,二分查找——效率logN需要存储在支持下标随机访问的结构中,并且有序。插入和删除数据效率很低,因为存储在下标随机访问的结构中,插入和删除数据一般需要挪动数据。2,二叉搜索树——N插入删除方便,优化后,可以达到logN优化后的结构:AVL树,红黑树等3,哈希表——O(1)也欢迎订阅我的深入理解 C++系列:从语法入门到底层原理,系统掌握现代 C++算法系列:从入门到精通,蓝桥杯、ACM、LeetCode 与面试算法全路线快速复习系列:知识梳理、查漏补缺,考前冲刺必备。

2026-08-17 13:22:28 1042 45

原创 深入理解C++系列(12)——模版进阶

文章摘要 本文主要探讨C++模板的高级应用,涵盖非类型模板参数、模板特化等内容。非类型模板参数允许使用常量作为模板参数,提升代码灵活性。文章通过array类的实现对比了静态数组与vector的区别。模板特化针对特殊类型进行定制化处理,分为函数模板特化与类模板特化。类模板特化包括全特化和偏特化,后者可对部分参数或参数类型(如指针/引用)进行限制。作者建议优先使用函数重载而非函数模板特化,并强调模板进阶知识对深入理解C++设计思想的重要性。

2026-08-14 18:54:12 1235 35

原创 深入理解C++系列(11)——stack、queue和priority_queue

这篇文章介绍了C++中stack和queue的基本概念及常用接口,并通过多个算法题展示了它们的实际应用。主要内容包括: stack的本质是后进先出(LIFO)的线性结构,常用接口有push、pop、top等。 三个典型算法题解析: 最小栈:使用双栈结构在O(1)时间内获取最小值 栈的压入弹出序列:通过栈模拟验证序列合法性 逆波兰表达式求值:利用栈结构计算后缀表达式 每个算法题都提供了详细解题思路和两种实现代码(基础版和优化版),强调栈在实际问题中的应用技巧。 文章面向有一定C++基础的读者,旨在深入理解ST

2026-08-10 23:17:36 1201 41

原创 深入理解C++系列(10)——lsit

1、C++里面list 的底层结构list底层采用带头双向循环链表实现。2、list 的构造方式list的构造方式与前面学习过的vectorstring基本一致,都是 STL 容器统一的设计风格,因此学习起来并不陌生。构造方式说明示例默认构造创建一个空链表指定元素个数创建 n 个元素,每个元素为默认值指定元素个数和值创建 n 个值为 val 的元素区间构造用一段迭代器区间构造拷贝构造用已有 list 创建新对象初始化列表构造(C++11)使用{}初始化移动构造(C++11)了解。

2026-08-09 12:09:43 679 9

原创 深入理解C++系列(09)——vector

文章摘要 本文系统总结了C++ STL中vector的使用与实现。首先介绍了vector作为动态数组的核心特性,包括构造方式(默认构造、个数初始化、区间构造等)、三种遍历方法(迭代器、下标、范围for)及常用接口(size/reserve/push_back等)。重点解析了vector的扩容机制、二维数组实现原理,并通过杨辉三角例题演示应用。文章还对比了vector<char>与string的区别,强调string在字符串处理中的优势。最后从底层实现角度分析了vector的迭代器失效问题及深拷贝必要性,为后

2026-08-07 17:37:36 1245 32

原创 深入理解C++(08)——string相关算法题

文章摘要 本文介绍了博主「此生决int」分享的C++字符串相关算法题解析,包含7道经典题目: 917. 仅仅反转字母(双指针技巧) 387. 字符串第一个唯一字符(哈希计数) HJ1 字符串最后单词长度(基础字符串操作) 415. 字符串相加(高精度加法模拟) 541. 反转字符串II(区间反转) 557. 反转单词III(单词级反转) 43. 字符串相乘(高精度乘法) 每道题提供解题思路、标准实现及优化代码,涵盖双指针、哈希表、字符串模拟等核心算法。特别强调对STL接口的熟练运用(如rfind())和边界

2026-08-05 20:00:00 692 45

原创 深入理解C++系列(07)——string类

本文介绍了C++中string类的核心概念及其优势。相较于C语言字符串,string通过封装实现了自动内存管理、动态扩容和丰富的操作接口,解决了手动管理、越界访问等问题。文章详细讲解了auto关键字的类型推导机制、范围for循环的语法与底层实现,以及string的多种构造方法(空构造、拷贝构造、子串构造等),并澄清了字符串常量与string对象的内存管理区别。最后通过代码示例展示了string的实际应用,为后续STL学习奠定了基础。

2026-08-03 19:00:00 800 39

原创 深入理解C++系列(06)——模版初阶与STL

本文摘要: C++模板是泛型编程的核心工具,通过编写与类型无关的通用代码实现高效复用。函数模板(如Swap)在编译时根据调用类型自动实例化,避免手写重复代码。类模板(如Stack)可创建支持任意类型的容器。模板分为隐式/显式实例化,需注意类型推导规则及匹配优先级(普通函数优先于模板)。理解模板原理(编译器生成具体代码)和参数匹配机制(避免隐式转换冲突)是掌握STL的基础。专栏面向C++进阶学习者,强调深入原理而非仅学语法。

2026-07-31 22:04:27 827 42

原创 深入理解C++系列(05)——C++的内存管理

这篇文章主要介绍了C/C++内存管理的核心知识点,包括内存分布、动态内存申请与释放方式(malloc/free和new/delete的区别),以及操作自定义类型时的构造/析构行为。重点内容包括: 内存分区:详细说明栈、堆、静态区、常量区等内存区域的用途和存储内容 动态内存管理对比: C语言使用malloc/calloc/realloc/free进行堆内存管理 C++引入new/delete操作符,不仅管理内存还会自动调用构造/析构函数 关键区别:new/delete会处理对象的构造和析构,而malloc/f

2026-07-28 19:47:36 1686 41

原创 深入理解C++系列(04)——类和对象(下)

本文是C++类和对象知识点的下篇总结,主要围绕构造函数初始化列表、类型转换、static成员、友元、内部类、匿名对象和编译器优化展开。核心内容包括: 初始化列表是成员变量真正的初始化位置,相比构造函数体内赋值更规范高效; 引用、const成员和没有默认构造的自定义类型成员必须使用初始化列表; C++11支持成员变量声明处给缺省值作为初始化列表的备用方案; 成员初始化顺序由声明顺序决定而非初始化列表顺序; 类可通过单参构造函数实现内置类型的隐式转换; static成员属于类而非对象,需在类外定义初始化; 友元

2026-07-25 23:56:50 545 32

原创 深入理解C++系列(03)——类和对象(中)

本文是C++类和对象系列教程的中篇,重点介绍类的6个默认成员函数及其核心用法。主要内容包括: 构造函数:对象初始化机制,区分无参构造、全缺省构造,强调默认构造函数的特点和易错点(如Date d2()的歧义)。 析构函数:资源清理时机,分析何时必须自定义析构函数(管理堆资源/文件句柄等情况)。 拷贝构造:用已有对象初始化新对象的规则,重点说明浅拷贝问题及解决方案。 运算符重载:赋值运算符重载的实现要点,对比拷贝构造的差异。 文章采用"编译器默认行为+需自定义场景"的对比式讲解,配合日期类/栈类等实例,帮助读者

2026-07-23 22:28:23 998 32

原创 深入理解C++系列(02)——类和对象(上)

本文介绍了C++类和对象的基础知识,主要包括以下核心内容: 类与对象的定义:类作为抽象设计图,对象是具体实例。类包含成员变量(属性)和成员函数(方法),通过访问限定符(public/private/protected)实现封装。 关键特性: 类域的形成与作用域限定符::的使用 成员变量命名规范(如_year) class与struct的默认访问权限差异(private vs public) 核心机制: 对象实例化时才真正分配成员变量空间 成员函数通过隐藏的this指针识别操作对象 对象大小计算规则(内存对齐

2026-07-22 23:13:20 735 31

原创 深入理解 C++(01)——初识 C++

本文介绍了C++入门基础知识点,主要内容包括:C++语言定位、第一个程序示例、命名空间(namespace)的作用与使用方式、C++输入输出(cin/cout)、缺省参数、函数重载、引用(reference)及其应用场景、const引用、指针与引用的区别、内联函数(inline)以及nullptr等。重点讲解了C++在兼容C语言基础上引入的新特性,如命名空间解决命名冲突、引用作为安全指针、函数重载提高灵活性等机制。文章采用结构化目录,包含知识点总览、详细讲解和易错点总结,适合C语言转C++或需要系统梳理C+

2026-07-19 23:37:09 773 34

原创 已会C语言快速上手 Java(01)—— 初识 Java

这篇文章是博主"此生决int"的Java入门系列教程第一章,主要面向有C语言基础、需要快速掌握Java应试要点的读者。文章重点介绍了Java的核心概念:1)Java的跨平台特性(.java源文件→.class字节码→JVM执行);2)JDK/JRE/JVM的包含关系;3)首个Java程序的规范结构(必须包含public类的main方法);4)编程基础(标识符规则、命名规范、关键字识别)。特别强调了考试高频考点:源文件命名规则、main方法固定格式、合法标识符判断等易错点,并通过与C语言的对比帮助读者快速建立

2026-07-18 10:06:27 390 10

原创 Java面向对象进阶精讲:抽象类、接口、内部类与Object类万字详解

在Java面向对象编程体系中,封装、继承、多态是三大核心思想,而抽象类与接口是实现多态最重要的两种载体,内部类是封装思想的延伸实现,Object是Java所有引用类型的顶层祖宗类,四者相辅相成,构成了Java类体系的底层骨架。很多初学者在入门阶段极易出现几个典型误区:分不清抽象类和接口的使用场景、混淆四种内部类的访问权限与实例化规则、搞不懂equals()和hashCode()成对重写的底层规范、不理解Cloneable接口浅拷贝与深拷贝的本质差异。

2026-06-12 11:39:48 479 10

原创 算法从入门到精通——字符串

本文总结了字符串处理中的基础技巧,重点讲解了四个经典算法题: 最长回文子串:采用中心扩散法,分别处理奇偶长度回文情况,记录最大回文串。 最长公共前缀:通过横向扫描法,依次比较字符串前缀,逐步缩小公共前缀范围。 二进制求和:模拟高精度加法,从低位到高位逐位相加并处理进位。 字符串相乘:模拟高精度乘法,通过竖式计算方法实现字符串乘法。 每个问题都给出了详细解题思路和C++实现代码,并附有优化版本参考。这些基础技巧为字符串处理提供了有效方法,适用于各类编程竞赛和算法面试场景。

2026-06-04 20:17:03 944 28

原创 C++快速上手java备战期末考——运算符,输入输出和数组

本文到此结束,欢迎各位在评论区探讨交流。需要快速复盘、精简学习内容的朋友,别忘了订阅我的快速复习专栏哦,主打专注整合学习中的精华,我们一起加油吧!

2026-05-28 14:28:06 1492 25

原创 算法从入门到精通——位运算

1,按位与:& 有0则为02,按位或:| 有1则为13,按位异或:^ 同为0,异为14,按位取反:~ 1变0,0变11,判定字符是否唯一⭐️(位图的思想)2,丢失的数字⭐️(按位异或的性质)3,两整数之和⭐️⭐️⭐️(加法的模拟加位运算基础性质)4,只出现一次的数字 II⭐️⭐️⭐️(思维+比特位的控制)5,消失的两个数字⭐️⭐️⭐️⭐️本期内容就到这里啦,欢迎大家在评论区一起交流讨论。

2026-05-24 17:56:55 1081 40

原创 算法从入门到精通——前缀和

文章摘要 本文系统讲解了前缀和算法的核心原理与应用场景。前缀和通过预处理数组前i项和,将区间求和优化至O(1)时间复杂度。文章包含: 基础概念:介绍一维/二维前缀和的定义与核心公式 经典模板:提供一维和二维前缀和的代码实现模板 典型例题: 寻找数组中心下标(左右和相等位置) 除自身外数组乘积(左右乘积结合) 通过6道精选题目,从模板题到变式题层层递进,帮助读者掌握前缀和在区间统计问题中的应用技巧。文中所有代码均附详细注释,并特别标注了易错点(如long long防溢出)。适合算法初学者系统学习前缀和这一重要

2026-05-21 19:09:16 2314 36

原创 算法从入门到精通——滑动窗口

滑动窗口的本质其实就是双指针,即同向双指针!如果让你暴力枚举所有区间,时间复杂度往往是 O(n²)。但很多题目里,我们其实没必要“重新遍历”整个区间。这时候,滑动窗口就登场了。用left和right两个指针维护一个动态区间,让窗口像尺子一样在数组或字符串上滑动,从而在线性时间内解决问题。很多看似需要两层循环的问题,都能被优化到 O(n)。1,滑动窗口长度最小的子数组最大连续1的个数 III将 x 减到 0 的最小操作数2,滑动窗口+哈希无重复字符的最长子串水果成篮。

2026-05-18 22:21:47 2708 42

原创 算法从入门到精通——双指针

本文介绍了双指针算法的核心思想与应用场景,重点讲解了三种经典模型:左右指针、快慢指针和滑动窗口。通过LeetCode高频真题(如移动零、复写零、快乐数等)详细解析解题思路,强调双指针如何将O(n²)暴力解法优化为O(n)。文章还总结了数组原地操作、判环、单调性等常见题型,并提供完整代码实现,帮助读者建立双指针思维,适合算法初学者和面试准备者快速掌握这一高频考点。

2026-05-15 19:22:52 3093 45

原创 C++快速上手java备战期末考——初识java

本文是C++快速上手Java系列的第一期,主要介绍了Java语言的特点和基础语法。Java作为面向对象语言,最大特点是可移植性强,通过字节码文件实现"一次编译,到处运行"。文章对比了Java与C/C++在数据类型上的差异,包括新增的byte类型、固定字节大小、char使用Unicode字符集等。重点讲解了Java严格的类型转换规则,强调其强类型特性,以及字符串类型的特殊处理方式。此外还介绍了Java的注释方式、关键字和标识符规则。下期将继续讲解Java运算符相关内容。本文适合有C++基础

2026-05-13 18:00:00 1705 21

原创 快速复习之数据结构篇——二叉树(三)

本文介绍了二叉树链式结构的实现方法,重点讲解了二叉树的三种遍历方式(前序、中序、后序)及其递归实现代码。文章包含二叉树相关选择题和编程题,涉及计算节点个数、叶子节点个数、树高度、查找特定节点等常见操作。还通过LeetCode单值二叉树题目展示了实际应用,提供了递归解题思路和代码实现。全文以递归为核心思想,系统讲解了二叉树的基本操作和典型算法问题。

2026-05-11 20:00:00 1103 34

原创 快速复习之数据结构篇——二叉树(二)

本文介绍了二叉树的顺序存储结构及堆的实现与应用。主要内容包括:1)完全二叉树适合顺序存储,堆作为特殊二叉树使用数组存储;2)堆分为大根堆和小根堆,具有完全二叉树性质;3)详细讲解了堆的向下调整和向上调整算法;4)堆的创建、插入、删除操作实现;5)堆排序算法及其时间复杂度分析;6)TOP-K问题的堆解决方案。文章包含代码示例和选择题练习,下期预告将介绍二叉树的链式存储结构。适合数据结构学习者快速复习堆相关知识。

2026-05-09 21:32:14 990 37

原创 快速复习之数据结构篇——二叉树(一)

本文介绍了二叉树的基本概念、性质及存储结构。主要内容包括:1)树的基本概念如度、层次、深度等;2)二叉树的定义和特性,包括满二叉树和完全二叉树的区别;3)二叉树的重要性质,如n0=n2+1等;4)二叉树的顺序存储和链式存储两种方式。文章还包含5道二叉树基础选择题及其答案,帮助读者巩固知识点。适合计算机专业学生或算法爱好者学习二叉树基础知识。

2026-05-08 22:14:15 748 16

空空如也

空空如也

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

TA关注的人

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