04 2023 档案

摘要:1. 概念引入 在说明构造函数和析构函数的概念之前, 首先看一个例子 下面这段代码是栈经典的应用场景括号匹配 如图, 栈首先必须初始化,然后在每一个return false之前都需要销毁栈, 否则就会有内存泄漏 这样很繁琐, 而且有些时候初始化和销毁很容易忘记写, 所以在C++中添加了默认的成员函数 阅读全文
posted @ 2023-04-29 11:42 许木101 阅读(47) 评论(0) 推荐(0) 编辑
摘要:1. this指针的概念与特性 this指针概念 首先来看一个例子 #include <iostream> using namespace std; class Date { public: void Init(int year, int month, int day) { _year = year 阅读全文
posted @ 2023-04-28 11:33 许木101 阅读(19) 评论(0) 推荐(0) 编辑
摘要:1. 对象存储规则 类实例化出的对象, 有成员变量和成员函数, 它们是存储在对象的? 实际上, 只有非静态的成员变量存储在对象中, 而成员函数是存储在公用代码段中, 如下图 现在知道了成员变量存储在对象中, 成员函数在公用代码段, 那么成员变量在内存中是如何存储的 对象中的成员变量在存储时需要遵守内 阅读全文
posted @ 2023-04-28 09:36 许木101 阅读(21) 评论(0) 推荐(0) 编辑
摘要:1. 如何计算结构体大小 如果要计算一个结构体的大小, 首先需要掌握内存对齐的规则 1. 第一个成员在与结构体变量偏移量为0的地址处 2. 从第二个成员开始, 每一个成员都要对齐到一个对齐数的整数倍处 对齐数: 结构体自身成员大小与默认对齐数的较小值 在VS编译器中, 默认对齐数为8, 在Linux 阅读全文
posted @ 2023-04-26 16:04 许木101 阅读(31) 评论(0) 推荐(0) 编辑
摘要:1. 初步认识面向对象与面向过程 C语言是面向过程的语言, 关注的是解决问题的过程 比如, 首先对问题进行拆解,然后用函数的方式对每个部分逐个实现,最后通过函数之间的相互调用将问题解决 C++是面向对象的, 关注的是对象, 如何从一个问题中抽离出不同的对象,然后靠对象之间的交互解决问题 最后需要注意 阅读全文
posted @ 2023-04-26 10:24 许木101 阅读(46) 评论(0) 推荐(0) 编辑
摘要:前言 本篇首先回顾指针的概念, 用C指针的缺陷引出C++中的引用, 然后对引用进行说明 比如, 什么是引用? 引用解决指针什么问题? 引用的特性和使用等等 1. 指针 什么是指针 指针是内存单元的地址, 口语中的指针实际上是指针变量, 存储地址的变量 #include <stdio.h> int m 阅读全文
posted @ 2023-04-25 19:33 许木101 阅读(116) 评论(0) 推荐(0) 编辑
摘要:1. 缺省参数 什么是缺省参数 缺省参数是声明或者定义函数时为函数的参数指定一个默认值,如果函数调用时没有传入实参, 那么这个默认值会被当做实参,如下例子 函数调用时, 传入参数1, a = 1,不传入参数, 默认a = 0, 这里的a就是一个缺省参数 缺省参数的分类 缺省参数分全缺省和半缺省参数 阅读全文
posted @ 2023-04-20 20:27 许木101 阅读(27) 评论(0) 推荐(0) 编辑
摘要:0. 前言 C++是在C语言基础之上的一门语言, 所以学习C++的第一步是思考C++是如何优化C语言设计中的一些不足, 如作用域, IO , 函数, 指针, 宏等 这些内容同时也是为之后学习C++类和对象打基础, 下面说一下C++是如何优化C语言中的作用域 1. 命名空间 在说明命名空间的概念和如何 阅读全文
posted @ 2023-04-18 14:08 许木101 阅读(126) 评论(0) 推荐(0) 编辑
摘要:设计循环队列 题目链接 思路 这道题如果用循环链表会有很多问题, 如图下 下面首先说一下用数组实现循环队列的结构 然后用这个结构实现入队, 出队, 判空, 判满操作操作, 如图下 下面代码实现 typedef struct { int* dys; int front; int rear; int k 阅读全文
posted @ 2023-04-14 10:46 许木101 阅读(10) 评论(0) 推荐(0) 编辑
摘要:用两个栈实现队列 题目链接 思路 首先, 梳理下栈和队列的概念, 如下图 栈中所有数据遵循后入先出, 而队列是先入先出 然后, 理解用两个栈模拟出的队列结构 最后思考如何用模拟出的队列实现入队, 出队, 取队头数据和判空操作, 这里说一下我的思路 入队: 入pushst栈 出队: 将pushst栈中 阅读全文
posted @ 2023-04-13 12:03 许木101 阅读(19) 评论(0) 推荐(0) 编辑
摘要:用两个队列实现一个栈 题目链接 题目描述 解题思路 首先梳理下队列和栈的概念, 队列是所有数据先入先出, 而栈是后入先出 第二步, 用两个队列结构模拟出一个栈结构 第三步,思考如何用模拟出来的栈,完成入栈, 出栈, 取栈顶数据和判空操作,这里说一下我的思路 入栈: 入不为空的队列, 如果两个队列都为 阅读全文
posted @ 2023-04-12 13:00 许木101 阅读(12) 评论(0) 推荐(0) 编辑
摘要:1. 队列概念和结构 队列与栈类似是一种特殊的线性表, 其只允许在一端删除数据, 在另外一端插入数据 删除数据的一端叫做队头, 插入数据的一端叫做队尾 删除与插入操作在队列中, 叫做出队和入队, 如下图 其次, 队列中的所有数据都遵守先进先出原则 比如要将1移出队列, 必须首先将数据0先出队列, 才 阅读全文
posted @ 2023-04-12 08:42 许木101 阅读(58) 评论(0) 推荐(0) 编辑
摘要:1. 栈的概念及结构 栈是一种特殊的线性结构, 只允许在固定的一端插入或者删除数据, 其固定的一端叫做栈顶, 另一端叫做栈底 插入删除数据操作在栈中,叫做入栈和出栈 栈中的数据元素遵守后进先出原则 2. 栈的实现 栈可以用数组或者链表,但是相较而言, 栈更适合用数组实现, 如下图 dys指向动态开辟 阅读全文
posted @ 2023-04-11 09:25 许木101 阅读(35) 评论(0) 推荐(0) 编辑
摘要:1. 顺序表的缺陷 1. 在顺序表头部中间插入数据,需要挪动数据效率低下 2. 容量不够时需要扩容,所以可能存在空间浪费 链表可以很好的解决这些问题,下面讲解链表 2. 链表概念及基本结构 链表是一种逻辑上连续,物理内存空间非连续存储的线性结构 typedef int SLDataType; typ 阅读全文
posted @ 2023-04-10 17:15 许木101 阅读(53) 评论(0) 推荐(0) 编辑
摘要:1. 顺序表概念和结构 顺序表是用一段物理地址连续的内存空间存储数据的线性结构,然后用这段空间来管理(增删改查) 数据 2. 顺序表的实现 定义顺序表结构及接口 #include <stdio.h> #include <assert.h> #include <stdlib.h> typedef in 阅读全文
posted @ 2023-04-06 18:39 许木101 阅读(29) 评论(0) 推荐(0) 编辑
摘要:1. 消失的数字 题目链接 题目描述 解题思路 异或操作符支持乘法交换律 > 0^3^0^1 ^0^1^2^3 > 0^0^0^1^1^3^3^2 >相同的值异或为0 > 0^2 >2 int missingNumber(int* nums, int numsSize){ int val = 0; 阅读全文
posted @ 2023-04-06 10:50 许木101 阅读(7) 评论(0) 推荐(0) 编辑
摘要:1. 复杂度概念 衡量一个算法的效率一般从时间和空间的角度 时间指一个算法执行所需要的时间,空间指执行算法所需要额外的空间, 在计算机科学中叫作时间和空间复杂度 2. 时间复杂度的计算 在复杂度概念中,写到时间复杂度指一个算法执行所需要的时间 那么,计算时间复杂度就是计算一个描述算法的程序,从编译链 阅读全文
posted @ 2023-04-06 09:53 许木101 阅读(38) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示