自学教程
文章平均质量分 92
天影云光
hello world!
展开
-
<Linux> 常用开发工具
vim,gcc/g++, gdb, make/makefile的介绍和使用说明原创 2023-04-25 08:00:00 · 665 阅读 · 1 评论 -
<Linux> 常用指令
ls、pwd、cd、touch、mkdir、rmdir、man、cp、mv、cat、more、less、head、tail、date、Cal、find、grep、zip/unzip、tar、bc原创 2023-04-18 08:00:00 · 604 阅读 · 0 评论 -
<C++>特殊类的设计
请设计一个类,不能被拷贝;请设计一个类,只能在堆上创建对象;请设计一个类,只能在栈上创建对象请设计一个类,不能被继承;请设计一个类,只能创建一个对象(单例模式)原创 2023-03-11 16:19:37 · 231 阅读 · 1 评论 -
<C++>智能指针
智能指针(auto_ptr,unique_ptr, shared_ptr, weak_ptr)定制删除器原创 2023-03-08 08:00:00 · 1001 阅读 · 1 评论 -
<C++>异常
异常处理,异常安全,异常规范,异常的优缺点原创 2023-02-06 09:00:00 · 225 阅读 · 0 评论 -
<C++>哈希
unordered_map、unordered_set、哈希概念、哈希冲突、哈希函数、哈希冲突解决、闭散列、开散列、模拟实现原创 2023-01-24 10:00:00 · 1017 阅读 · 0 评论 -
<C++>红黑树
红黑树的概念 性质 节点定义 插入操作 验证 红黑树与AVL树的比较 模拟实现STL中的map与set原创 2023-01-18 11:00:00 · 546 阅读 · 0 评论 -
<C++>AVL树
1. AVL树的概念、定义、插入、旋转、验证、性能原创 2023-01-13 09:00:00 · 308 阅读 · 0 评论 -
<C++>set和map
set,multiset,map,multimap原创 2023-01-09 10:00:00 · 289 阅读 · 0 评论 -
<C++>二叉树进阶
二叉搜索树概念、操作、实现、应用、性能分析经典题目:最近公共祖先、从前序与中序遍历序列构造二叉树、二叉树的前序遍历(非递归)原创 2023-01-03 10:00:00 · 2404 阅读 · 1 评论 -
<C++>多态
多态的定义和实现、虚函数、抽象类、接口继承和实现继承多态的原理、动态绑定与静态绑定、单继承和多继承关系的虚函数表原创 2022-12-08 09:00:00 · 172 阅读 · 0 评论 -
<C++>继承
面向对象三大特性、继承的概念、继承定义、定义格式、继承关系和访问限定符、继承基类成员访问方式的变化、基类和派生类对象赋值转换、继承中的作用域、派生类的默认成员函数、继承与友元、菱形继承和菱形虚拟继承、菱形继承、虛拟继承、虚拟继承解决数据冗余和二义性的原理原创 2022-11-04 09:00:00 · 135 阅读 · 1 评论 -
<C++>模板详解
泛型编程、函数模板、类模板、非类型模板参数、模板的特化、模板声明定义分离原创 2022-11-02 09:30:00 · 103 阅读 · 0 评论 -
<C++>stack和queue
文章目录1. stack1.1 stack的介绍1.2 stack的使用1.3 模拟实现stack2. queue2.1 queue的介绍2.2 queue的使用2.3 queue的模拟实现3. priority_queue3.1 priority_queue的介绍3.2 priority_queue的使用3.3 priority_queue的模拟实现4. 容器适配器4.1 什么是适配器4.2 STL标准库中stack和queue的底层结构4.3 deque的介绍4.3.1 deque的原理介绍4.3.2原创 2022-10-11 10:50:53 · 158 阅读 · 3 评论 -
<C++>详解list类
list介绍、list使用、list模拟实现、 list和vector的区别原创 2022-09-20 09:28:39 · 968 阅读 · 3 评论 -
<C++>详解vector类
vector的介绍、使用,vector的迭代器失效,vector模拟实现原创 2022-09-07 10:38:30 · 873 阅读 · 0 评论 -
<C++>详解string类
STL简介、string类的常用接口、深浅拷贝、拓展:写实拷贝、string类模拟实现原创 2022-08-31 11:05:52 · 278 阅读 · 0 评论 -
<C++>模板
函数模板、类模板、非类型模板参数、模板的特化、模板声明定义分离原创 2022-08-12 15:27:34 · 112 阅读 · 1 评论 -
<C++>C/C++内存管理
new、delete原创 2022-07-20 08:30:00 · 98 阅读 · 0 评论 -
<C++>类和对象——补充
初始化列表、explicit关键字、static成员、C++11成员初始化新方式、友元、内部类原创 2022-07-14 09:00:00 · 112 阅读 · 0 评论 -
<C++>类的六个默认成员函数
构造函数、析构函数、拷贝构造函数、赋值运算符重载、取地址及const取地址操作符重载、>的重载、实现日期类的基本操作原创 2022-07-07 08:00:00 · 425 阅读 · 1 评论 -
<C++>类和对象——应用
C++封装、类的作用域、类的实例化、类对象模型、this指针原创 2022-07-01 10:43:53 · 304 阅读 · 1 评论 -
<C++>类和对象——引入
类的引入、类的定义、类的访问限定符原创 2022-07-01 09:00:00 · 205 阅读 · 2 评论 -
<C++>入门新概念
引用、内联函数、auto、范围for、nullptr原创 2022-06-24 09:48:29 · 155 阅读 · 5 评论 -
<C++>C++入门——缺省参数、函数重载
缺省参数的分类、缺省参数的应用、缺省参数的注意点;函数重载的概念、C++支持函数重载的底层逻辑、extern“C”原创 2022-06-18 09:43:59 · 484 阅读 · 36 评论 -
<C++>快来精通C++的“Hello world“写法
C++是啥,命名空间,输入输出原创 2022-05-11 08:39:18 · 10833 阅读 · 139 评论 -
十大经典排序,你全都会了吗?(附源码、动图、万字详解)
文章目录前言: 排序的概念1. 插入排序1.1 基本思想:1.2 1️⃣直接插入排序:1.3 2️⃣希尔排序( 缩小增量排序)2. 选择排序2.1基本思想:2.2 3️⃣直接选择排序:2.3 4️⃣堆排序3. 交换排序3.1基本思想:3.2 5️⃣冒泡排序3.3 6️⃣快速排序3.3.1 快速排序优化3.3.2 快速排序非递归4. 7️⃣归并排序4.1 归并排序非递归5. 非比较排序5.1 8️⃣计数排序5.2 9️⃣桶排序5.3 🔟基数排序总结:排序算法复杂度及稳定性分析原创 2022-05-04 09:16:09 · 16731 阅读 · 274 评论 -
<数据结构>链式二叉树的基本操作
二叉树的遍历二叉树节点个数 (引进分治思想) 二叉树叶子节点个数二叉树第k层节点个数二叉树层数二叉树查找值为x的节点 判断是否为完全二叉树二叉树的销毁原创 2022-04-19 17:03:43 · 1788 阅读 · 159 评论 -
<数据结构>挖堆堆、栽树树(手把手教你写“堆排序”)
4.最小堆[0,3,2,5,7,4,6,8],在删除堆顶元素0之后,其结果是()A[3,2,5,7,4,6,8]B[2,3,5,7,4,6,8]C[2,3,4,5,7,8,6]D[2,3,4,5,6,7,8]选择题答案1.A2.C3.C4.C[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LpjlyHjR-1649649469749)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user..原创 2022-04-18 08:25:05 · 1113 阅读 · 131 评论 -
<数据结构>倒拔二叉树
文章目录1.树概念及结构1.1树的概念1.2 树的相关概念1.3 树的表示1.4 树在实际中的运用2.二叉树概念及结构2.1概念2.2现实中的二叉树:2.3 特殊的二叉树:2.4 二叉树的性质2.5 二叉树的存储结构目前在不断更新<数据结构>的知识总结,已经更新完了<C语言>,未来我会系统地更新<C++语言><Linux系统编程><Linux网络编程><MySQL数据库>等内容。 想要一步步稳扎稳打,学习编程的小伙伴可以关注我,.原创 2022-04-12 19:43:25 · 659 阅读 · 72 评论 -
<数据结构>你分得清栈和队列吗?
1.栈1.1栈的概念及结构栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO(Last In First Out)的原则。压栈:栈的插入操作叫做进栈/压栈/入栈,入数据在栈顶。出栈:栈的删除操作叫做出栈。出数据也在栈顶1.2栈的实现栈的实现一般可以使用数组或者链表实现,相对而言数组的结构实现更优一些。因为数组在尾上插入数据的代价比较小。top意味着什么top初始化成0。top指向栈原创 2022-04-06 09:00:00 · 1612 阅读 · 200 评论 -
<数据结构>你敢信?带头双向循环链表其实很简单
你敢信?双向循环带头链表其实很容易原创 2022-04-02 08:58:31 · 992 阅读 · 151 评论 -
<数据结构>还不会写单向链表?我手把手教你
文章目录1.链表概况1.1 链表的概念及结构1.2 链表的分类2. 单向链表的实现2.1 SList.h(头文件的汇总,函数的声明)2.2 SList.c(函数的具体实现逻辑)2.2.1 打印链表2.2.2 搞出一个新节点(为其他函数服务)2.2.3 链表尾插2.2.4 链表头插2.2.5 链表尾删2.2.6 链表头删2.2.7 查找节点2.2.8 在pos位置之前插入2.2.9 在pos位置之后插入2.2.10 删除pos位置2.2.11 删除pos之后位置2.2.12 链表销毁1.链表概况1.1 链原创 2022-03-19 09:50:10 · 2161 阅读 · 61 评论 -
<数据结构>还不会写顺序表?我手把手教你
文章目录1.线性表2.顺序表2.1概念及结构2.2 接口实现2.3 数组相关面试题2.4 顺序表的问题及思考1.线性表线性表(linear list)是n个具有相同特性的数据元素的有限序列。 线性表是一种在实际中广泛使用的数据结构,常见的线性表:顺序表、链表、栈、队列、字符串…线性表在逻辑上是线性结构,也就说是连续的一条直线。但是在物理结构上并不一定是连续的,线性表在物理上存储时,通常以数组和链式结构的形式存储2.顺序表2.1概念及结构顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性原创 2022-03-13 09:15:47 · 1517 阅读 · 66 评论 -
数据结构自学教程——算法的时间复杂度和空间复杂度
1.前言1.1 什么是数据结构?数据结构(Data Structure)是计算机存储、组织数据的方式,指相互之间存在一种或多种特定关系的数据元素的集合。1.2 什么是算法?算法(Algorithm):就是定义良好的计算过程,他取一个或一组的值为输入,并产生出一个或一组值作为输出。简单来说算法就是一系列的计算步骤,用来将输入数据转化成输出结果。2.算法效率2.1 如何衡量一个算法的好坏如何衡量一个算法的好坏呢?比如对于以下斐波那契数列:long long Fib(int N){ i原创 2022-03-09 02:15:00 · 646 阅读 · 53 评论 -
c语言自学教程——博文总结
时光荏苒,岁月如梭。c语言自学教程:初阶:c语言自学教程——分支语句和循环语句.c语言自学教程——函数.c语言自学教程——数组.c语言自学教程——操作符.c语言自学教程——初遇大魔王指针.进阶:c语言自学教程——再战大魔王指针.c语言自学教程——字符函数和字符串函数.c语言自学教程——自定义类型:结构体,枚举,联合.c语言自学教程——动态内存管理.c语言自学教程——深度剖析数据在内存中的存储.c语言自学教程——文件操作.c语言自学教程——程序环境和预处理.c语言应用系列:学原创 2022-03-07 02:00:00 · 654 阅读 · 27 评论 -
c语言自学教程——程序环境和预处理
1. 程序的翻译环境和执行环境在ANSI C的任何一种实现中,存在两个不同的环境。第1种是翻译环境,在这个环境中源代码被转换为可执行的机器指令。第2种是执行环境,它用于实际执行代码2. 详解C语言程序的编译+链接2.1 翻译环境组成一个程序的每个源文件通过编译过程分别转换成目标代码(object code)。每个目标文件由链接器(linker)捆绑在一起,形成一个单一而完整的可执行程序。链接器同时也会引入标准C函数库中任何被该程序所用到的函数,而且它可以搜索程序员个人的程序库,将其需要的原创 2022-02-27 13:14:52 · 562 阅读 · 35 评论 -
c语言自学教程——文件操作
1. 为什么使用文件我们前面学习结构体时,写了通讯录的程序,当通讯录运行起来的时候,可以给通讯录中增加、删除数据,此时数据是存放在内存中,当程序退出的时候,通讯录中的数据自然就不存在了,等下次运行通讯录程序的时候,数据又得重新录入,如果使用这样的通讯录就很难受。我们在想既然是通讯录就应该把信息记录下来,只有我们自己选择删除数据的时候,数据才不复存在。这就涉及到了数据持久化的问题,我们一般数据持久化的方法有,把数据存放在磁盘文件、存放到数据库等方式。使用文件我们可以将数据直接存放在电脑的硬盘上,原创 2022-02-22 20:35:00 · 1446 阅读 · 37 评论 -
c语言自学教程——深度剖析数据在内存中的存储
数据类型详细介绍整形在内存中的存储:原码、反码、补码大小端字节序介绍及判断浮点型在内存中的存储解析原创 2022-01-29 19:57:50 · 270 阅读 · 19 评论 -
c语言自学教程——动态内存管理
1. 为什么存在动态内存分配我们已经掌握的内存开辟方式有:int val = 20;//在栈空间上开辟四个字节char arr[10] = {0};//在栈空间上开辟10个字节的连续空间但是上述的开辟空间的方式有两个特点:空间开辟大小是固定的。数组在申明的时候,必须指定数组的长度,它所需要的内存在编译时分配。但是对于空间的需求,不仅仅是上述的情况。有时候我们需要的空间大小在程序运行的时候才能知道,那数组的编译时开辟空间的方式就不能满足了。这时候就只能试试动态存开辟了。2. 动态内存原创 2022-01-26 12:26:20 · 259 阅读 · 23 评论