自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 06--string

本文摘要: C++中的string是一个表示字符序列的类,它通过动态内存管理解决了C语言固定字符数组的局限性。string提供多种字符编码支持(如wstring、u16string等)和丰富的接口操作,包括构造、遍历、容量管理、元素访问和修改等。文章详细解析了string在不同平台(VS和g++)下的实现差异,VS采用小字符串优化(SSO)策略,而g++使用写时拷贝技术。同时,文章对比了operator[]与at()的安全检查差异,并提供了string模拟实现的完整代码,包括构造、拷贝、迭代器、扩容等核心功

2025-08-09 15:25:50 657

原创 05--STL认识(了解)

STL(标准模板库)是C++标准库的重要组成部分,提供可复用的数据结构和算法框架。主要内容包括STL概念、版本、组成结构及学习路径:从基础认知到简化实现。STL与C++标准库关系密切,是高效编程的核心工具。参考资源推荐cplusplus.com和cppreference.com两个权威网站。学习建议从理解基础组件开始,逐步深入实现原理。

2025-08-08 22:39:46 177

原创 04--模板初阶(了解)

本文介绍了C++模板的基本概念和应用。模板作为泛型编程的基础,包括函数模板和类模板两类,实现了代码复用。函数模板通过隐式或显式实例化生成具体函数,遵循特定的匹配原则。类模板需要明确指定类型参数进行实例化。文章比较了模板与typedef的区别,指出模板在类型处理上的灵活性。同时强调了模板类定义与声明应放在同一文件的注意事项。模板的引入标志着C++进入了泛型编程时代,极大提升了代码复用性和开发效率。

2025-08-08 22:39:08 363

原创 03--内存管理

本文系统阐述了C/C++内存管理的核心概念和技术要点。首先分析了内存划分的必要性,详细说明了不同区域(栈区、堆区、静态区等)的特性及变量存储位置。重点对比了malloc/free与new/delete的异同,强调new/delete在简化语法、支持初始化和自动调用构造/析构函数等方面的优势。深入剖析了new/delete的底层实现机制,包括operator new/delete的工作流程。最后探讨了内存泄漏问题及其预防措施,并提供了链表模板的快速生成方法。全文从理论到实践,全面覆盖了C/C++内存管理的关键

2025-08-07 14:34:11 897

原创 01--CPP入门

本文摘要:C++引入了命名空间域解决符号冲突,支持指定访问和展开访问。介绍了输入输出(cout/cin)、缺省参数、函数重载(通过修饰函数名实现)和引用的特性与应用。分析了内联函数(提升效率但可能膨胀代码)和auto关键字(自动推导类型)的使用场景与注意事项。最后讨论了范围for循环和nullptr的优势。这些特性共同提升了C++的灵活性、安全性和效率,但也需注意合理使用以避免潜在问题。

2025-08-06 13:26:04 557

原创 02--类和对象

本文系统介绍了C++面向对象编程的核心概念与技术要点。主要内容包括:1)类与对象的定义与实现,重点讲解了构造函数、析构函数、拷贝构造等默认成员函数;2)封装特性与访问控制,通过访问限定符实现数据隐藏;3)this指针原理及其在成员函数中的应用;4)运算符重载的语法规则与实现方法;5)const成员函数的作用与权限控制;6)静态成员与友元机制的特殊应用场景;7)初始化列表的正确使用方法。文章通过日期类等具体案例,深入浅出地阐述了面向对象三大特性(封装、继承、多态)中的封装机制,为C++面向对象编程奠定了扎实基

2025-08-05 22:30:25 1057

原创 12-排序

本文介绍了6种经典排序算法的实现原理和代码实现:插入排序(将元素插入有序序列)、选择排序(选择最小元素交换位置)、冒泡排序(相邻元素比较交换)、堆排序(利用堆结构取最值)、快速排序(分治思想,荷兰国旗分区)和归并排序(分治+合并有序数组)。分析了各算法的时间复杂度:前三种为O(N²),后三种为O(NlogN)。其中堆排序需要额外空间,快速排序不稳定,而归并排序是稳定的。文章最后提供了洛谷P1177排序模板题的练习链接。每种算法都给出了清晰的C++实现代码,包含关键步骤注释。

2025-08-05 17:12:44 259

原创 11-哈希表

本文系统介绍了哈希表的概念、实现方法及应用。首先阐述了哈希表的基本原理,包括哈希函数设计(直接定值法、除留余数法等)和冲突处理方法(线性探测法、链地址法)。随后提供了C++实现代码,演示了两种冲突处理方式的具体实现。接着介绍了STL中的unordered_set和unordered_map容器,并比较了其与红黑树实现的set/map的区别。最后通过5个算法例题(P5266、P4305、P3879、P1102、P3405)展示了哈希表在实际问题中的应用,包括学籍管理、去重处理、词频统计、数对查找和城市统计等场

2025-08-05 17:12:07 317

原创 10-红黑树

本文系统介绍了三种重要的二叉搜索树结构及其应用。首先详细讲解了二叉搜索树的基本概念和增删改查操作,指出其在有序情况下会退化为链表的缺陷。然后引入平衡二叉树(AVL树),重点解析了四种旋转调整方式(LL、RR、LR、RL)和平衡因子的维护机制。最后介绍了红黑树的五大规则及其插入调整策略,说明其近似平衡的特性。文章还通过C++代码示例展示了STL中基于红黑树的set/map容器的使用,并提供了三个典型算法题解(词频统计、营业额计算、木材库存管理),演示了如何利用这些数据结构解决实际问题。全文从理论到实践,系统阐

2025-08-05 17:11:30 786

原创 09-堆

本文系统介绍了堆数据结构及其应用,主要内容包括:1.堆的定义与存储方式,重点讲解完全二叉树性质及顺序存储方法;2.堆的核心操作算法,包括向上调整和向下调整的详细实现;3.堆的模拟实现代码,包含插入、删除、查询等基本操作;4.STL中的priority_queue使用方法,涵盖内置类型和自定义结构体的实现;5.典型算法习题解析,包括堆排序、TopK问题、序列合并等实际应用场景,通过洛谷和牛客网的题目示例演示堆在算法竞赛中的灵活运用。全文通过代码实现和问题分析,完整展现了堆这一重要数据结构的理论知识和实践技巧。

2025-08-05 17:10:56 215

原创 08-二叉树

本文系统地介绍了二叉树的基本概念、存储方式和遍历算法。主要内容包括:1)二叉树的基本概念(普通二叉树、满二叉树、完全二叉树);2)数组和链式两种存储方式;3)深度优先遍历(前序、中序、后序)和广度优先遍历的实现;4)典型算法题目解析,包括构建二叉树、求树高/树宽、节点距离计算等。通过C++代码示例展示了各种遍历和计算方法的实现,并提供了多个OJ题目的解题思路和代码实现。文章可作为二叉树学习的实践指南,涵盖了从基础到应用的完整知识体系。

2025-08-05 17:10:04 312

原创 07-一般的树

本文介绍了树的基本概念和实现方法。主要内容包括:1)树的基本术语定义(结点度、树的高度、路径等)和分类(有序/无序树、有根/无根树);2)树的两种存储实现方式:vector数组和链式前向星;3)树的深度优先搜索(DFS)和广度优先搜索(BFS)遍历算法。文章通过代码示例展示了具体实现,并指出不同存储方式对遍历顺序的影响。这些内容为后续学习二叉树等树形数据结构奠定了基础。

2025-08-05 17:09:32 293

原创 06-队列

本文介绍了队列的概念、实现方式及应用。队列是一种先进先出(FIFO)的线性表,支持在队尾插入、队头删除操作。文章详细讲解了队列的数组模拟实现方法,包括入队、出队、查询等基本操作,并介绍了STL中的queue容器及其使用方法。通过三个算法例题(B3616队列模板、P1540机器翻译、P2058海港)展示了队列的实际应用场景。最后还拓展介绍了双端队列(deque)的概念和STL实现方式。全文内容涵盖队列的基础知识到实际应用,适合算法学习者参考。

2025-08-05 17:08:57 272

原创 05-栈 stack

本文介绍了栈的基本概念和实现方法。栈是一种后进先出(LIFO)的线性表,支持push(入栈)和pop(出栈)操作。文章详细讲解了用数组模拟栈的实现方法,包括入栈、出栈、查询栈顶等操作。同时介绍了C++ STL中的stack容器及其使用方法。最后提供了多个栈相关的算法例题及解析,包括栈的基本操作、括号匹配验证、后缀表达式计算等,展示了栈在实际问题中的应用。这些例题涵盖了栈的典型应用场景,帮助读者深入理解栈的工作原理和使用技巧。

2025-08-05 17:08:25 332

原创 04-链表

摘要:本文介绍了链表的基本概念和多种实现方式。链表通过节点(包含数据域和指针域)实现链式存储,包括静态数组模拟(使用两个数组分别存储数据和指针)和动态内存管理两种实现方式。详细展示了单链表和双链表的模拟实现代码,包括插入、删除、查找等基本操作。同时介绍了STL中的list容器及其使用方法。最后通过4个算法例题(排队顺序、单向链表、队列安排、约瑟夫问题)演示了链表在实际问题中的应用,涉及单链表、双链表和循环链表的操作技巧。

2025-08-05 17:07:29 406

原创 03-顺序表

本文介绍了顺序表的概念及实现方式。顺序表是线性表的顺序存储实现,分为静态分配(固定大小数组)和动态分配(可扩容数组)两种形式。文章详细展示了静态顺序表的模拟实现代码,包括插入、删除、查找等基本操作。同时介绍了STL中的动态顺序表vector,讲解其创建、遍历、增删改查等常用操作,并通过多个算法习题(如询问学号、寄包柜、移动零、合并有序数组等)演示了vector的实际应用。最后以UVA101积木问题为例,展示如何用vector数组解决复杂问题。全文通过代码实例帮助读者理解顺序表的原理与实现。

2025-08-05 17:06:51 323

原创 02-算法

算法是解决问题的步骤序列,能将输入转换为输出。评价算法优劣主要看时间复杂度和空间复杂度,分别表示执行时间和存储资源的消耗量级。大O表示法用于描述最坏情况下的复杂度,保留最高阶项并去除系数。递归算法的空间复杂度为单次递归空间乘以递归次数。竞赛中通常要求C++程序在1-2秒内完成,运算次数控制在10^7-10^8次,空间限制为128-256MB,可支持3*10^7个int或5000×5000的二维数组。

2025-08-05 17:06:12 168

原创 01-数据结构

数据结构是计算机存储和组织数据的方式,其核心意义在于提高数据处理效率。数据结构包含三大要素:一是逻辑结构,包括无关联的集合、一对一关系的线性结构、一对多的树形结构和多对多的图结构;二是存储结构,分为顺序存储(如数组)和链式存储(通过指针连接);三是数据运算,涉及数据的存储、增删改查等基本操作。这三大要素共同构成了数据结构的理论基础和实践框架。

2025-08-05 17:05:23 247

原创 【test】算法_判断

【test】算法_判断

2025-06-28 15:32:05 362

原创 【test】算法_填空

【test】算法_填空

2025-06-28 15:17:26 338

原创 【test】算法_选择

【test】算法_选择

2025-06-28 15:02:25 104

原创 第七讲 信号

第七讲 信号

2025-06-22 20:12:58 635

原创 第六讲 进程间通信

第六讲 进程间通信

2025-06-22 14:58:42 1024

原创 第五讲 基础IO

第五讲 基础IO

2025-06-08 15:14:09 924

原创 第四讲 进程控制

第四讲 进程控制

2025-06-08 13:13:39 682

原创 第三讲 Linux进程概念

第三讲 Linux进程概念

2025-06-08 13:13:04 1041

原创 第二讲 Linxu基础开发工具的使用

第二讲 Linxu基础开发工具的使用

2025-06-08 13:12:16 1038

原创 第一讲 常见的指令, 外壳与权限

第一讲 常见的指令, 外壳与权限

2025-06-08 13:11:08 836

原创 13. 用户管理

13. 用户管理

2025-06-04 20:31:54 940

原创 12. 视图

12. 视图

2025-06-04 20:31:17 410

原创 11. 试学内容-如何理解隔离性2(原理)

11. 试学内容-如何理解隔离性2(原理)

2025-06-04 20:30:40 1174

原创 11. MySQL事务管理(上)

11. MySQL事务管理(上)

2025-06-04 20:29:22 866

原创 10. MySQL索引

10. MySQL索引

2025-06-04 20:28:44 725

原创 9. 表的内连和外连

9. 表的内连和外连

2025-06-04 20:26:06 311

原创 8. 复合查询

8. 复合查询

2025-06-04 20:24:27 555

原创 7. 内置函数

7. 内置函数

2025-06-04 20:23:43 531

原创 6. MySQL基本查询

6. MySQL基本查询

2025-06-04 20:22:53 1306

原创 5. 表的约束

5. 表的约束

2025-06-04 20:21:09 513

原创 4. 数据类型

4. 数据类型

2025-06-04 20:19:23 1242

原创 3. 表的操作

3. 表的操作

2025-06-04 20:18:23 704

数据库系统概论(王珊,杜小勇,陈红) 第一章-绪论 思维导图 png, pdf, freemind格式

数据库系统概论(王珊,杜小勇,陈红) 第一章--绪论 思维导图 png, pdf, freemind格式

2025-04-20

CPP中的继承语法 思维导图

CPP中的继承语法 思维导图

2024-11-23

C+学习笔记+树、堆、二叉树代码

内容概要:通过简单的代码,用C语言实现了堆的一些相关接口,比如堆的初始化创建销毁,插入删除,堆排序,TOPK问题解决等等...还有一些链式二叉树的相关内容,在这里为了简单链式二叉树相关内容均是用递归的思路来进行实现的,因而算是初阶数据结构二叉树的一个小集合。 适合人群:学生,学习初阶数据结构的人群 能学到什么:通过简单的代码,用C语言实现了堆的一些相关接口,比如堆的初始化创建销毁,插入删除,堆排序,TOPK问题解决等等...还有一些链式二叉树的相关内容,在这里为了简单链式二叉树相关内容均是用递归的思路来进行实现的,因而算是初阶数据结构二叉树的一个小集合。 阅读建议:此资源免费公开,建议配合我自己写的博客一起看会比较好一些。

2024-03-28

空空如也

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

TA关注的人

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