自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Linux系统篇(五)工具篇·一:软件工具与动静态库

本文系统介绍了Linux环境下软件包管理器(apt/yum)的使用、Vim编辑器的多模式操作与配置技巧,以及gcc/g++编译流程中的预处理、编译、汇编与链接过程。重点解析了动静态库的区别与应用场景,并通过实例演示条件编译、库文件管理及编译选项的灵活运用,帮助初学者掌握Linux开发基础技能。

2026-10-08 22:49:09 650 45

原创 Linux系统篇(四)权限篇·二:Linux权限补充

本文介绍了Linux中粘滞位(t)的用途与应用。为实现多用户共享目录下的文件协作,需防止非文件拥有者删除他人文件。通过在共享目录(如/temp-backup)设置粘滞位(chmod +t),仅允许文件拥有者或root删除文件,其他用户无法删除。该机制保障了共享安全,常见于系统/tmp目录。粘滞位仅作用于目录,且不影响root权限。

2026-09-20 20:21:10 308 30

原创 Linux系统篇(三)权限篇·一:Linux权限基本认识

本文系统讲解Linux用户与权限机制,涵盖用户类型(root与普通用户)、切换命令(su、sudo)、权限控制(chmod、chown、chgrp)及权限本质。重点解析文件权限三组(拥有者、所属组、other)的读写执行规则,结合umask解释默认权限生成逻辑,并澄清目录权限、文件删除权限等常见误区,强调权限对安全与协作的重要性,适合初学者掌握Linux基础权限管理。

2026-09-17 20:51:25 904 29

原创 Linux系统篇(二)指令篇·二:Linux指令后续

本文系统讲解Linux基础命令与核心概念,涵盖打印指令(printf、echo)、重定向机制、文本查看工具(more、less、head、tail)、时间戳与date/cal命令、文件查找(find、which、whereis、grep)、任务管理(top)、压缩打包(zip/unzip、tar)及文件传输(sz/rz、scp),辅以计算器bc、uname信息查询、热键操作与关机命令。内容由浅入深,结合实践案例,助力初学者掌握Linux系统操作核心技能。

2026-09-12 22:00:16 241 18

原创 Linux系统篇(一)指令篇·一:初识Linux及其基本指令

本文系统介绍Linux操作系统的基础知识,涵盖其发展历程、开源特性、发行版本(如Ubuntu、CentOS)、文件系统结构及核心命令。通过学习Linux背景、目录树状结构、常用指令(ls、cd、touch、mkdir、cat、rm等)与Shell操作,帮助初学者掌握基本使用技能。结合云服务器配置与Xshell连接实践,强调“一切皆文件”的理念,为后续深入学习打下坚实基础。

2026-09-11 23:35:15 1595 27

原创 C++进阶:智能指针

本文介绍了智能指针在异常场景下避免资源泄漏的作用,阐述了RAII设计思想,梳理了C++标准库auto_ptr、unique_ptr、shared_ptr、weak_ptr的特点与用法,并解释了shared_ptr引用计数原理、循环引用问题及线程安全,最后强调了智能指针预防内存泄漏的重要性。

2026-09-07 20:38:15 370 26

原创 C++进阶:异常

本文介绍了C++异常处理机制:通过throw抛出异常,catch捕获并处理,支持栈展开与类型匹配;强调异常重抛、资源安全问题及noexcept规范,并简述标准库异常继承体系。

2026-09-07 16:39:00 251 21

原创 C++进阶:C++11(2)

本文介绍了C++11中的几个重要特性:可变模板参数、移动语义、emplace系列接口、lambda表达式和包装器。主要内容包括:1. 可变模板参数的语法和包扩展用法;2. 移动构造和移动赋值的概念与实现;3. emplace系列接口相比push/insert的优势;4. lambda表达式的基本语法、捕捉列表和应用场景;5. function包装器的使用和bind的参数绑定功能。这些特性提高了C++的编程效率和灵活性,使代码更简洁高效。

2026-08-11 12:22:37 566 28

原创 C++进阶:C++11相关

本文摘要:C++11新特性解析 本文系统讲解了C++11中的关键新特性: 列表初始化:统一了内置类型和自定义类型的初始化方式,引入initializer_list支持容器初始化 右值引用:区分左值/右值,通过移动语义优化资源管理,减少拷贝开销 类型分类:细化右值为纯右值和将亡值 完美转发:利用引用折叠规则和forward保留参数原始类型特性 重点分析了移动构造/移动赋值的实现原理,以及右值引用在函数返回值和参数传递中的性能优化作用。通过示例代码展示了这些特性在实际开发中的应用场景和优势。

2026-07-17 15:18:51 677 36

原创 C++进阶:哈希表

本文介绍了哈希表的基本概念、实现方法及冲突解决策略。主要内容包括:1. 哈希概念与使用方法,比较了unordered_set/set和unordered_map/map的区别;2. 哈希函数实现(除留余数法、乘法散列法);3. 哈希冲突解决策略:开放定址法(线性探测、二次探测、双重散列)和链地址法,并提供了两种方法的C++代码实现。文章通过示例代码演示了哈希表的插入、查找和删除操作,同时讨论了负载因子对哈希性能的影响。适合对哈希数据结构感兴趣的开发者阅读学习。

2026-06-25 21:54:53 1285 31

原创 C++基础入门:_stack_queue 底层奥秘

本文介绍了C++中三种容器适配器(stack、queue、priority_queue)的使用与模拟实现方法。内容包括:1. stack的后进先出特性及相关接口,通过双栈实现最小栈功能;2. queue的先进先出特性,用单队列模拟栈操作;3. priority_queue的堆结构特性,默认大顶堆实现及调整算法。文章通过具体代码示例展示了如何利用底层容器(vector/deque)模拟实现这些适配器,并提供了相关练习题(最小栈、队列实现栈)的解决方案,帮助读者深入理解容器适配器的工作原理。

2026-06-15 23:38:47 732 39

原创 C++进阶:红黑树

红⿊树是⼀棵⼆叉搜索树,他的每个结点增加⼀个存储位来表⽰结点的颜⾊,可以是红⾊或者⿊⾊。通过对任何⼀条从根到叶⼦的路径上各个结点的颜⾊进⾏约束,红⿊树确保没有⼀条路径会⽐其他路径⻓出2倍,因⽽是接近平衡的。

2026-06-08 23:23:22 1210 42

原创 C++进阶:AVL树

本文介绍了AVL树的基本概念与实现方法。AVL树是一种自平衡二叉搜索树,通过平衡因子(右子树高度减左子树高度)保证左右子树高度差不超过1。文章详细讲解了AVL树的插入过程,包括平衡因子更新规则和四种旋转操作(右单旋、左单旋、左右双旋、右左双旋)的实现原理,并提供了C++代码示例。通过旋转调整使树重新平衡,同时保持二叉搜索树性质。文末还给出了AVL树的查找实现。该内容适合学习数据结构和C++的读者参考。

2026-06-08 19:32:21 542 31

原创 C++进阶:map和set的使用

摘要 本文主要介绍了C++ STL中的关联式容器set和map系列的使用方法。文章首先区分了序列式容器和关联式容器的概念,然后详细讲解了set和map的构造、迭代器、增删查等操作,并比较了set与multiset、map与multimap的差异。 关键点包括: set和map底层采用红黑树实现,增删查效率为O(logN) set系列支持有序遍历,默认升序排列 map使用pair存储键值对,提供了[]运算符的便捷操作 multiset和multimap允许键值冗余,相关操作会有所不同 介绍了lower_bou

2026-06-04 20:51:35 474 40

原创 C++进阶:二叉搜索树

欢迎来到少司府的博客☆*: .。. o(≧▽≦)o .。.:*☆⭐⭐⭐水滴石穿非一日,功不唐捐终可期。

2026-06-02 19:10:05 758 46

原创 C++进阶:多态

多态是一个继承关系下的类对象,去调用同一函数,不同对象产生了不同的行为。⽐如Student继承了Person。Person对象买票全价,Student对象优惠买票。

2026-05-31 22:05:25 392 21

原创 C++进阶:继承

继承()机制是⾯向对象程序设计使代码可以复⽤的最重要的⼿段,它允许我们在保持原有类特性的基础上进⾏扩展,增加⽅法(成员函数)和属性(成员变量),这样产⽣新的类,称子类。继承呈现了⾯向对象程序设计的层次结构,体现了由简单到复杂的认知过程。以前我们接触的函数层次的复⽤,继承是类设计层次的复⽤。public:// 进⼊校园/图书馆/实验室刷⼆维码等⾝份认证protected:string _name = "张三";// 姓名// 地址// 电话// 年龄public:// 学习。

2026-05-30 20:40:06 525 32

原创 C++基础入门:模板进阶

本文介绍了C++模板编程中的关键概念与应用。主要内容包括:1)非类型模板参数的使用限制和静态数组array的特性;2)模板特化的两种形式(函数模板特化和类模板特化)及其实现方法;3)模板分离编译的常见问题及解决方案;4)模板编程的优缺点分析,包括代码复用优势与编译膨胀等缺陷。文章通过具体代码示例,帮助读者理解模板特化、分离编译等高级特性,为C++开发者提供了实用的模板编程指南。

2026-05-24 15:47:38 565 37

原创 Tools相关:深入浅出学Git

本文介绍了Git版本控制系统的基本概念和常用操作。主要内容包括:1)Git的分布式特性与工作流程;2)基本配置(用户名/邮箱设置、别名配置);3)文件操作(创建、提交、日志查看、版本回退);4)分支管理(创建/切换/合并/删除分支、解决冲突);5)远程仓库操作(SSH配置、推送/拉取代码、解决合并冲突)。文章通过具体命令示例和流程图,详细讲解了Git的核心功能和使用方法,适合初学者快速掌握Git的基本操作。

2026-05-21 09:40:39 1358 43

原创 C++基础入门:深挖list的那些事

本文主要介绍了C++标准库中list容器的使用方法和模拟实现。文章首先讲解了list的基本操作,包括迭代器访问、push_back/push_front、insert/find、reverse/sort等函数的使用,重点分析了list特有的splice节点转移和unique去重功能。随后详细展示了list的模拟实现过程,包括节点结构设计、迭代器模板化实现、构造函数和析构函数等核心功能。最后对比了list和vector的底层结构差异,指出list适合频繁插入删除但不需随机访问的场景,而vector则更适合需要

2026-05-18 21:19:40 1127 37

原创 C++基础入门:vector深度解析(七千字深度剖析)

本文介绍了C++中vector容器的基本使用和模拟实现。主要内容包括:1. vector的基本介绍和使用方法,包括构造、迭代器遍历等;2. capacity相关接口如reserve()和resize()的实现原理;3. modifiers接口如push_back和insert的实现;4. 详细讲解了vector的模拟实现,包括构造/析构函数、迭代器、容量操作等核心功能;5. 重点分析了迭代器失效问题及其解决方案。文章通过代码示例展示了vector的底层实现机制,帮助读者深入理解这一重要容器的内部工作原理。

2026-05-12 22:49:45 1230 35

原创 C++基础入门:string类深度剖析(万字解析保姆级教程,干货满满)

本文详细介绍了C++标准库中的string类及其相关操作。首先阐述了string类的基本概念、实例化方式和多种遍历方法(下标、迭代器、范围for)。然后深入讲解了容量相关接口(length/size/capacity)、reserve与clear函数,以及modifiers接口(尾插、插入、删除、替换等操作)。文章还涵盖了operations接口(c_str/substr)、非成员函数(运算符重载/getline)等内容。最后通过分文件开发的方式,逐步实现了string类的模拟,包括构造函数、析构函数、运算

2026-05-01 22:39:59 602 37

原创 C++基础入门:初识模板

本文介绍了C++中的泛型编程与模板技术。主要内容包括:1)泛型编程的概念及模板的作用;2)函数模板的定义、原理和实例化方式(隐式和显式);3)类模板的定义格式和实例化方法。通过swap函数等示例,展示了模板如何实现代码复用,并解释了模板的编译机制。文章还对比了模板与非模板函数的区别,以及类模板实例化的注意事项。模板技术是C++实现泛型编程的重要手段,能有效提高代码的复用性和可维护性。

2026-04-23 21:49:49 662 36

原创 C++基础入门:内存管理

这篇文章主要介绍了C++中的内存管理和动态内存分配机制。文章首先通过例题分析C/C++程序的内存分布,包括全局变量、静态变量、局部变量等在内存中的存储位置。然后详细讲解了C++中new和delete操作符的使用方法,包括对内置类型和自定义类型的处理差异,以及operator new和operator delete的底层实现原理。文章还分析了new和delete的实现机制,特别是对于自定义类型的构造和析构处理。最后介绍了定位new表达式的作用和使用场景,说明其如何配合内存池进行内存管理。整体内容涵盖了C++内

2026-04-18 18:06:22 2071 43

原创 C++基础入门:类和对象(下)

1)、用static修饰的成员变量叫做静态成员变量,需要在类外初始化2)、静态成员被该类的所有成员共享,不属于某个具体对象,不存储在对象中,在静态区3)、静态成员函数没有this指针,只能访问静态成员class A{public:_a++;private:1)、⽤类型(实参)定义出来的对象叫做匿名对象,相⽐之前我们定义的类型对象名(实参)定义出来的叫有名对象。2)、匿名对象⽣命周期只在当前⼀⾏,⼀般临时定义⼀个对象当前⽤⼀下即可,就可以定义匿名对象。

2026-04-14 20:15:01 635 32

原创 C++基础入门:类和对象(中)

第一个参数是自身类类型对象的引用,且任何额外的参数都有默认值。这样的构造函数称为拷贝构造函数。

2026-04-07 21:06:40 770 24

原创 C++基础入门:类和对象(上)

欢迎来到少司府的博客☆*: .。. o(≧▽≦)o .。.:*☆⭐⭐⭐名不显时心不朽,再挑灯火看文章一、类的定义1.1 类的定义的格式1)、class为定义类的关键字,{ }中为类的主体,类体中内容为类的成员:类中的变量称为类的属性或成员变量,类中的函数称为类的方法或成员函数。2)、为了区分成员变量,一般习惯在成员变量前加上一个特殊标识,如 _3)、C++中struct也可以定义类,C++兼容C中struct的用法,同时struct升级为类。

2026-03-31 21:25:01 920 22

原创 C++基础入门:第一个C++程序

《少司府C++基础教程》摘要:本文系统介绍了C++编程基础,包含命名空间定义与使用、输入输出流、缺省参数规则、函数重载特性等核心概念。重点讲解了引用机制(定义/特性/const引用/指针对比)、内联函数优化原理及nullptr关键字。通过代码示例演示了命名空间嵌套、引用返回、内联替换宏等实用技巧,同时指出了项目开发中的注意事项(如避免全局展开命名空间)。适合C++初学者建立系统的语法认知体系。

2026-03-24 21:10:40 726 14

原创 Win 32 API:初步了解与应用

本文介绍了Win32API在控制台程序开发中的应用。主要内容包括:1)控制台程序的基本操作,如调整窗口大小和设置标题;2)常用Win32API函数,包括获取设备句柄(GetStdHandle)、设置光标位置(SetConsoleCursorPosition)、获取屏幕缓冲区信息(GetConsoleScreenBufferInfo)、设置文本颜色(SetConsoleTextAttribute)等;3)详细讲解了COORD坐标类型和控制台界面坐标系统。文章还提供了键盘状态检测(GetAsyncKeyStat

2026-03-17 22:24:48 458 1

原创 初识数据结构:排序算法

本文系统介绍了常见排序算法及其实现原理。内容涵盖排序基本概念、内部/外部排序区别,以及冒泡排序、选择排序、堆排序、插入排序、希尔排序、快速排序(hoare和前后指针版本)、归并排序、计数排序8种算法的核心思想、时间/空间复杂度分析。特别对比了各算法稳定性,指出插入/冒泡/归并排序具有稳定性,而希尔/选择/堆/快速排序不稳定。文章通过代码示例和可视化动图链接(如快速排序动图)辅助理解,适合编程学习者系统掌握排序算法知识。

2026-03-17 19:45:10 625 5

原创 初识数据结构:二叉树

【摘要】本文分享了两个数据结构问题的创新解法。首先提出topk问题的另类解法:建立小堆处理前k个数,后续数据与堆顶比较替换,比传统大堆方法更高效。其次详细讲解了链式二叉树的实现,包括建立二叉树、四种遍历方式(前序/中序/后序/层序),以及求节点数、叶子节点、树高度和第k层节点数的分治算法。文章通过代码示例展示了具体实现方法,为数据结构和算法学习者提供了实用技巧。(149字)

2026-02-25 16:28:14 682 2

原创 EasyX:从入门到入土

【摘要】本文介绍了EasyX图形库的基础使用指南,主要包含三部分内容:1)EasyX的安装与配置,包括下载安装、在线文档查阅和头文件设置;2)窗口设置方法,详细说明initgraph函数参数、背景颜色调整和坐标系统;3)基本图形绘制技巧,涵盖点、线、矩形(含圆角矩形)和圆形等几何图形的绘制函数及参数设置。文章配有函数接口说明和效果图示,适合C++初学者快速入门图形编程。(149字)

2026-02-08 22:26:47 801 2

原创 初识数据结构:二叉树和堆

【数据结构专题:树与堆】本文系统讲解了树结构及其衍生概念,重点介绍了二叉树的存储方式(顺序/链式)和堆的实现。内容涵盖:1.树的基本概念与表示方法(左孩子右兄弟/数组存储)2.二叉树特性与分类(满/完全二叉树)3.堆的核心操作(插入/删除时的向上/向下调整算法)4.堆应用实例(TopK问题解决方案)5.堆排序实现与复杂度分析(建堆O(n),排序O(nlogn))。通过代码示例演示了堆接口函数实现和排序测试,适合数据结构学习者系统掌握树形结构知识体系。

2026-02-08 16:45:01 899 3

原创 VS2022背景图片设置教程(手把手、保姆级)!

欢迎来到少司府的博客☆*: .。. o(≧▽≦)o .。.:*☆⭐⭐⭐那些看似不起波澜的日复一日,终将在某天让你看到坚持的意义一、拓展插件的安装1.1 打开管理拓展打开的选项。

2026-01-22 20:58:07 532 1

原创 初识数据结构:栈和队列(二)

如图,与之前不一样的是,队列要额外实现取队头、队尾数据的接口。这里额外定义一个结构体是为了整合头指针、尾指针和节点数据个数。同时,也方便了形参的传递,避免了传递二级指针。

2026-01-22 20:57:29 1208 1

原创 初识数据结构:栈和队列

如图,top是数组元素下标,指向栈顶后一个元素。capacity是数组的容量大小(可存储的元素个数)。初始化、销毁以及插入删除的功能不用多介绍。获取栈顶判空获取数据个数。

2026-01-20 17:39:09 1041 2

原创 Re:从0开始的编程基础练习(二)

right指针指向。

2026-01-20 17:38:46 701 1

原创 Re:从0开始的编程基础练习(一)

欢迎来到少司府的博客☆*: .。. o(≧▽≦)o .。.:*☆⭐⭐⭐天行健,君子以自强不息一、常见编程练习网站归纳网上有很多练习code能力的资源网,包括各个高校内部应该也有自己的练习网址,但用的最多、最有效的网站无非就那么几个:这其中,和主要面向的算法方面的练习,如果想提升自己数据结构、算法方面的能力可以用这两个网站。(当然,LeetCode上也不乏有数据库、shell、多线程相关的题目)而更多的是编程基础方面的训练。当然,牛客网本身也是一个。

2026-01-11 13:13:03 1005

原创 初识数据结构:链表OJ

欢迎来到少司府的博客☆*: .。. o(≧▽≦)o .。.:*☆⭐⭐⭐天行健,君子以自强不息一、链表的在线OJ判题1、什么是在线OJ?英语,缩写)是一种在编程竞赛中用来测试参赛程序的在线系统,也可以用于平时练习。2、为什么训练在线OJ(1)、有一些比赛,比如:NOI、NOIP、ACM之类的编程竞赛都是采用在线OJ的方式进行。(2)、现在IT大学生就业找工作的笔试环节也采用在线OJ的方式进行。二、链表OJ的经典例题1、回文链表这是一个经典的面试题,判断一个链表是否。

2026-01-11 13:12:47 1296 2

原创 初识数据结构:复杂度讲解

(1)、用常数1表示运行时间中语句执行的常数次数 O(1)(2)、只保留最高阶项(3)、最高阶项存在且不是1时,(e.g. 3*N),则去除与其相乘的系数O(N)

2026-01-09 20:47:42 1086 2

空空如也

空空如也

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

TA关注的人

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