自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 算法之滑动窗口

本文介绍了滑动窗口算法及其应用。并以长度最小的子数组问题为例,对比了暴力解法(O(n²))和滑动窗口解法(O(n))的实现差异。

2025-09-08 22:12:07 943 1

原创 算法之双指针

双指针算法是一种高效处理线性数据结构的优化技术主要分为三种类型:同向指针(用于元素筛选重排)、对撞指针(适用于有序数据查找)和快慢指针(检测循环结构)。文章结合7道LeetCode题目(如移动零,复写0,快乐数,盛最多水的容器,有效三角形的个数,和为s的两个数字,三数之和,四数之和)

2025-09-08 19:12:18 1031 1

原创 Linux之进程概念3

本文深入解析了Linux系统中的进程概念,介绍了查看进程的ps命令、获取进程标识符的系统调用(getpid/getppid),以及fork()创建子进程的机制。

2025-09-05 00:21:52 1027 1

原创 数据结构——树

本文主要介绍了二叉树的基本概念和操作。重点讲解了二叉树的两种存储方式,二叉树的创建方法(手动构建和递归法)以及四种遍历方式(前序、中序、后序和层序遍历)。还介绍了二叉树的基本操作如节点计数、高度计算、查找节点、判断完全二叉树等,并提供了相关代码实现。还介绍了DFS(深度优先遍历)和BFS(广度优先遍历)

2025-09-05 00:21:04 588

原创 C++之多态篇

本文系统介绍了C++多态的核心概念与实现机制。主要内容包括:1. 多态的定义与实现条件。2. 虚函数与虚函数表。3. C++11新增的final和override关键字。4. 抽象类与纯虚函数的接口规范作用。5. 多态底层原理。6. 多继承场景下的虚表处理机制;7. 动态绑定与静态绑定的区别。

2025-08-28 19:16:00 1035

原创 C++之继承篇

本文系统地介绍了C++中的继承机制,重点讲解了继承的概念、访问规则、派生类对象与基类对象的赋值转换、作用域关系、默认成员函数生成规则等核心内容。特别针对复杂的菱形继承问题,深入分析了虚拟继承的原理和实现机制,包括虚基表的作用。文章还对比了继承与组合的优缺点,建议优先使用组合而非继承,以降低耦合度。

2025-08-27 02:01:37 1010

原创 Linux之冯・诺依曼体系和操作系统

本文系统介绍了计算机系统的核心架构与运行机制。首先阐述了冯・诺依曼体系的基本原理和计算机存储体系的金字塔模型,其次详细解析了操作系统的分层架构与管理逻辑,最后简要区分了库函数与系统调用的关系。全文揭示了从硬件基础到系统管理再到应用开发的计算机构成体系,为理解计算机工作原理提供了系统化视角。

2025-08-10 12:07:06 760

原创 priority_queue的使用和模拟

本文介绍了C++中priority_queue、仿函数和反向迭代器的实现原理。

2025-08-07 18:20:31 728

原创 stack和queue的使用和模拟

本文介绍了栈(stack)和队列(queue)的以及模拟实现,还介绍了deque,deque结合了vector和list的优点

2025-08-04 01:37:10 715

原创 list的使用和模拟

本文深入解析C++中list容器的特性与实现。讲解了迭代器分类(单向/双向/随机访问)及其应用场景,模拟实现了list的核心功能,对比了list与vector的性能差异,提供了完整实现代码链接。

2025-08-03 02:54:43 812 2

原创 Linux的小程序——进度条

本文介绍了C语言中实现进度条的关键技术。讲解了回车(\r)与换行(\n)的区别,以及标准输出缓冲区的概念,一个简单的倒计时和进度条

2025-07-30 16:44:18 875

原创 makefile和make解析

make和makefile是软件开发中实现自动化构建的核心工具。介绍了make和makefile。

2025-07-28 19:13:18 619

原创 vector使用和模拟

本文详细介绍了C++标准库中的vector容器及其模拟实现,还拓展了<algorithm>中的sort

2025-07-27 18:09:26 901

原创 Linux的开发工具

本文介绍了Linux下C/C++开发的编译工具gcc和g++的核心工作流程。完整编译过程分为预处理、编译、汇编和链接四个阶段,分析了动态链接与静态链接两种链接方式的优缺点;以及Debug和Release两种编译模式的特征差异

2025-07-25 13:03:14 624 1

原创 Linux的工具

本文介绍了Linux软件安装方法和vim编辑器的基本使用,其中讲了源代码安装、rpm安装和yum安装三种方式。在vim编辑器部分,重点讲解了三种模式——命令模式、插入模式、底行模式。最后简要说明了vim的个人配置文件设置方法,提供了一些实用的配置选项

2025-07-24 16:01:34 762

原创 string的模拟

本文详细介绍了如何模拟实现C++中的string类,主要涵盖构造函数、拷贝构造、赋值运算符重载和析构函数等核心功能。。

2025-07-21 19:24:37 586

原创 Linux的基本指令(二)和权限

本文介绍Linux常用指令与权限管理,含基础指令、Shell原理、用户权限管理及特殊功能

2025-07-17 23:50:30 272

原创 string类的使用

本文介绍了 C++ STL 的 string 类。先简述 STL 的重要性,及其在提升开发效率、实现代码复用等方面的作用。再重点讲解 string 类的使用,包括与 C 字符串的区别、常用接口(构造、赋值、追加、查找等)、迭代器及元素访问方法,并通过代码示例展示其自动内存管理、操作接口丰富等优势。最后简要提及 string 的模板设计原理及 wstring 等扩展类型。内容适合 C++ 开发者学习 string 类使用。

2025-07-17 12:38:31 562

原创 模板的初阶

本文介绍 C++ 模板技术:函数模板和类模板通过类型参数化实现代码复用,前者可自动或显式实例化,后者需显式指定类型。模板优先精确匹配,普通函数支持自动类型转换。以 swap 和 Stack 为例说明其减少重复代码的优势,及声明定义分离的特殊语法。模板是泛型编程核心,能提升效率。

2025-07-15 10:18:12 902

原创 C/C++内存管理

本文介绍C/C++内存管理知识,包括内存区域、变量存储位置、C语言动态内存函数、C++ new/delete机制、定位new表达式及内存泄漏防范等。

2025-07-12 00:46:25 896

原创 类和对象(三)

本文介绍了C++中类初始化的关键概念和方法。主要内容包括: 初始化列表,explicit关键字,静态成员, 内部类,匿名对象

2025-07-10 12:35:20 960

原创 类和对象拓展——日期类

本文介绍了C++日期类的实现与优化方法。文章通过具体代码示例展示了日期类的完整实现过程,并分析了各种设计选择的优缺点,最后总结了const成员和友元函数的应用场景。

2025-07-09 16:58:27 713

原创 数据结构——堆

本文介绍了堆数据结构及其应用。首先讲解了树的基本概念和二叉树特性,包括满二叉树和完全二叉树。重点阐述了堆的实现方式,包括大顶堆和小顶堆的定义,以及堆的核心操作(插入、删除)使用的向上调整和向下调整算法。文章详细分析了堆排序的工作原理和TOP-K问题的解决方案,指出升序建大堆、降序建小堆的原理和简单介绍了一下文件的知识点。最后通过代码示例展示了堆的具体实现和应用场景,包括文件操作实现TOP-K查询。堆作为高效的数据结构,在优先队列和排序算法中具有重要价值。

2025-07-04 16:57:51 769

原创 数据结构——队列

本文介绍了队列(Queue)这一先进先出(FIFO)的线性数据结构,重点讲解了两种实现方式:链表队列和循环队列。文章还比较了栈与队列的异同,包括逻辑结构、存储方式和运算规则。通过具体代码示例展示了两种队列的实现方法,为理解队列这一基础数据结构提供了实用参考。

2025-06-24 18:49:34 1150

原创 数据结构——栈

本文介绍了栈的基本概念和两种实现方式:顺序栈和链栈。主要操作包括压栈(插入)和出栈(删除)。顺序栈采用数组实现,具有高效尾部操作的优势;链栈则使用链表结构实现。最后通过一道有效的括号匹配算法题展示了栈的实际应用。理解栈的实现原理有助于掌握更复杂的数据结构,并为算法学习打下基础。

2025-06-22 17:57:34 1028

原创 数据结构——双链表

本文介绍了带头双向循环链表的实现方法,通过图解和代码示例完成了动态节点申请、初始化、销毁、打印、判空、插入/删除(头尾操作和指定位置操作)以及查找等功能,并提供了完整的代码实现。

2025-06-01 14:56:16 1042

原创 使用快慢指针经典问题

本文介绍了快慢指针在链表问题中的经典应用。1找出链表中间节点;2返回链表倒数第n个节点;3判断链表是否有环;4找到环形链表的入口节点。且每道题都配有图解和代码实现。

2025-05-29 22:53:05 896

原创 数据结构——单链表

本文介绍了链表的基本概念和单链表实现。文章通过图文并茂的方式帮助读者理解链表操作的实现细节。

2025-05-27 17:26:29 904

原创 数据结构——顺序表

本文介绍了数据结构中的顺序表实现,重点讲解动态顺序表的操作。

2025-05-24 16:45:38 676 2

原创 算法的时间复杂度和空间复杂度

文章主要介绍了算法分析中的时间复杂度和空间复杂度,以及如何通过大O渐进表示法来评估算法的效率

2025-05-23 11:04:47 793

原创 类和对象(二)

类和对象(中)

2025-05-16 12:54:42 876

原创 类与对象(一)

类和对象(一)

2025-05-11 22:58:54 910

原创 Linux的基本指令(一)

Linux的一些指令

2025-05-09 13:05:49 583

原创 C++入门

C++入门知识

2025-05-05 17:09:41 858

原创 简单的扫雷代码

再次如上一个游戏一样设置三个文件来运行该游戏9910。

2024-12-08 22:18:55 638 1

原创 简单的三子棋代码

三子棋的代码

2024-12-03 00:09:00 958

原创 猜数字小游戏

利用前面的知识点就可以写出一个简单的猜数字小游戏函数rand1.需要的头文件:stdlib.h2.该函数可以生成随机数3.其实rand函数⽣成的随机数是伪随机的,伪随机数不是真正的随机数设置随机数的范围:重要的:如果要⽣成a~b的随机数,⽅法如下:函数srand1.该函数是用来初始化随机数的生成器程序中在调⽤rand函数之前先调⽤srand函数,通过srand函数的参数seed来设置rand函数⽣成随机数的时候的种⼦,只要种⼦在变化,每次⽣成的随机数序列也就变化起来了。

2024-11-21 16:25:05 1075

原创 分支和循环补充知识点

上一篇文章中交代了if-else,switvh-case,do-while三个知识点,然后打算完善其他的知识点while和for以及一些特殊的控制语句。掌握选择结构语句和循环结构语句是c语言的基础,一定要好好掌握,特别是for循环我个人觉得超级好用!!!

2024-11-19 21:50:40 953

空空如也

空空如也

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

TA关注的人

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