自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

KevinJune的博客

新手上路

  • 博客(48)
  • 资源 (1)
  • 收藏
  • 关注

原创 Matlab中simulink突然打不开(无法加载‘F:\MATLAB\bin\win64\libmwsimulink.dll‘:找不到指定的模块)

如果系统是64位的话,复制到C:\Windows\SysWOW64目录下。然后按Win+R,弹出运行窗口,在窗口中键入下图的命令回车。(但是博主没有尝试成功)里看看最近是不是被360删了哪些有关MATLAB的文件,我在这里是被删了slcg_mf0.dll。网上找了很多种方法在这里总结一下:(如果你电脑是360直接尝试最后一个)这几天突然打不开用了好久的simulink,然后给我报了这个错误。,重启MATLAB就可以正常打开simulink了。3.打开你的360,点击系统修复里的恢复区。

2022-11-22 13:10:13 7275 3

原创 前缀树和贪心算法

何为前缀树?又称单词查找树,Trie树,是一种树形结构,是一种哈希树的变种。典型应用是用于统计,排序和保存大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。它的优点是:利用字符串的公共前缀来减少查询时间,最大限度地减少无谓的字符串比较,查询效率比哈希树高。如何生成前缀树?pass:加前缀树时经过该节点的次数end:这个节点为多少个字符串的终结的点 代码:例子:一个字符串类型的数组arr1,另一个字符串类型的数组arr2。arr2中有哪些字符,是arr1中出现的?请打印。arr2

2022-07-12 21:31:47 228

原创 图基础知识以及例题

(1)邻接表邻接表,存储方法跟树的孩子链表示法相类似,是一种顺序分配和链式分配相结合的存储结构。 (2)邻接矩阵逻辑结构分为两部分:V和E集合,其中,V是顶点,E是边。因此,用一个一维数组存放图中所有顶点数据;用一个二维数组存放顶点间关系(边或弧)的数据。 (3)在实际解题的时候图有各种各样的表达形式。可以将其先转化成自己常用的一种模板,再用自己熟悉的算法去完成。假设给一个图的类型的结构,将其转化成自己的模板 (1)利用队列实现(2)从源节点开始依次按照宽度进队列,然后弹出(3)每弹出一个点,把

2022-07-06 17:39:46 272

原创 二叉树基本知识和例题

class Node{ V value; Node left; Node right;}用递归和非递归两种方式实现二叉树的先序、中序、后序遍历如何直观的打印一棵二叉树如何完成二叉树的宽度优先遍历(常见题目:求一棵二叉树的宽度)分析:会多次返回到原函数,虽然什么都没做,每个节点都会被使用3次 均由递归序加工到来,选择打印的时间不同。先序即打印输出为(头左右):1,2,4,5,3,6,7 (第一次进入函数时打印,其余两次不打印)中序即打印输出为(左头右):4...

2022-07-03 23:02:35 355

原创 链表的常见数据结构及题目

目录1 哈希表的简单介绍2 有序表的简单介绍3 链表的节点结构4 面试时链表解题的方法论5 判断一个链表是否为回文结构6 将单向链表按某值划分成左边小、中间相等、右边大的形式7 复制含有随机指针节点的链表8 两个单链表相交的一系列问题1. 哈希表在使用层面上可以理解为一种集合结构2. 如果只有key,没有伴随数据value,可以使用HashSet结构(C++中叫UnOrderedSet)3. 如果既有key,又没有伴随数据value,可以使用HashMap结构(C++中叫UnOrderedMap)4. 有无

2022-06-24 23:04:49 272

原创 桶排序及排序算法总结

1. 比较器的实质就是重载比较运算符2. 比较器可以很好的应用在特殊标准的排序上3. 比较器可以很好的应用在根据特殊标准排序的结构上4. 堆结构的heapInsert与heapify操作5. 堆结构的增大和减少6. 优先级队列结构,介绍堆结构1. 计数排序2. 基数排序分析:1. 桶排序思想下的排序都是不基于比较的排序2. 时间复杂度为O(N), 额外空间负载度O(M)3. 应用范围有限,需要样本的数据状况满足桶的划分...

2022-06-24 17:16:36 97

原创 二叉树结构以及堆结构基础

二叉树(binary tree)是指树中节点的度不大于2的有序树,它是一种最简单且最重要的树。二叉树的递归定义为:二叉树是一棵空树,或者是一棵由一个根节点和两棵互不相交的,分别称作根的左子树和右子树组成的非空树;左子树和右子树又同样都是二叉树 。1、满二叉树:如果一棵二叉树只有度为0的节点和度为2的节点,并且度为0的节点在同一层上,则这棵二叉树为满二叉树[4] 。2、完全二叉树:深度为k,有n个节点的二叉树当且仅当其每一个节点都与深度为k的满二叉树中编号从1到n的节点一一对应时,称为完全二叉树 [4]

2022-06-24 10:53:17 205

原创 认识O(NlogN)的排序

1. 整体就是一个简单递归,左边排好序、右边排好序、让其整体有序2. 让其整体有序的过程里用了排外序方法(左右两个对比,将数值较小的放进外部的一个数组内,然后被调用的数据指针往下移一位,相等时默认取左边的数据,如果一侧的数组数据被提取完成,将剩下的数据全部保存到外部数组即可)3. 利用master公式来求解时间复杂度4. 归并排序的实质时间复杂度O(N*logN), 额外空间复杂度O(N)小和问题和逆序对问题在一个数组中,每一个数左边比当前数小的数累加起来,叫做这个数组的小和。求一个数组的小和。例子:[1,

2022-06-23 11:07:22 135

原创 认识时间复杂度和简单排序算法

目录1 认识时间复杂度1.1 常数时间的操作1.2 异或运算的性质与扩展1.3 对数器的概念和使用1.4 剖析递归行为和递归行为时间复杂度的估算2 常用排序算法2.1 遍历排序2.2 冒泡排序2.3 插入排序一个操作如果和样本的数据量没有关系,每次都是固定时间内完成的操作,叫做常数操作时间复杂度为一个算法流程中,常数操作数量的一个指标。常用O(读作big O)来表示。在表达式中,只要高阶项,不要低阶项,也不要高阶项的系数,剩下的部分如果为f(N),那么时间复杂度为O(f(N))。评价一个算法流程的好坏,先看

2022-06-22 21:47:47 258

原创 STL常用算法

概述:○算法主要是由头文件组成○是所有STL头文件中最大的一个,范围涉及到比较、交换、查找、遍历操作、复制、修改等等○体积很小,只包括几个再序列上面进行简单数学运算的模板函数○定义了一些模板类,用以声明函数对象学习目标:○掌握常用的遍历算法算法简介:○for_each //遍历容器○transform //搬运容器到另一个容器中.........

2022-06-11 18:29:39 1826 2

原创 STL——函数对象

概念:○重载函数调用操作符的类,其对象常成为函数对象○函数对象使用重载的()时,行为类似函数调用,也叫仿函数本质:函数对象(仿函数)是一个类,不是一个函数特点:○函数对象在使用时,可以像普通函数那样调用,可以有参数,可以有返回值○函数对象超出普通函数的概念,函数对象可以有自己的状态○函数对象可以作为参数传递...

2022-06-10 22:18:47 187

原创 C++——map/multimap容器

简介:○map中所有元素都是pair○pair中第一个元素为key(键值),起到索引作用,第二个元素为value(实值)○所有元素都会根据元素的键值自动排序本质:○map/multimap属于关联式容器,底层结构是用二叉树实现优点:○可以根据key值快速找到value值map和multimap区别:○map不允许容器中有重复key值元素○multimap允许容器中有重复key值元素功能描述:○对map容器进行构造和赋值操作函数原型:构造:○map mp; //map默认构造函数○map(con...

2022-06-10 21:07:43 526

原创 C++——set/multiset 容器

简介:○所有元素都会在插入时自动被排序本质:○set/multiset属于关联式容器,底层结构是用二叉树实现set和multiset区别:○set不允许容器中有重复的元素○multiset允许容器中有重复的元素功能描述:创建set容器以及赋值构造:○set st; //默认构造函数○set(const set &st); //拷贝构造函数赋值:○set& operator=(const set &st); //重载等号操作符...

2022-06-08 22:00:30 251

原创 C++——list容器

功能:将数据进行链式存储链表(list)是一种物理存储单元上非连续的存储结构,数据元素的逻辑顺序是通过链表中的指针链接实现的链表的组成:链表由一系列结点组成结点的组成:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域STL中的链表是一个双向循环链表由于链表的存储方式并不是连续的内存空间,因此链表中list中的迭代器只支持前移后移,属于双向迭代器list的优点:○采用动态存储分配,不会造成内存浪费和溢出○链表执行插入和删除操作十分方便,修改指针即可,不需要移动大量元素list的缺点:○链表灵活,

2022-06-08 20:32:42 2809

原创 C++——queue容器

概念:Queue是一种先进先出(First In First Out,FIFO)的数据结构,它有两个出口队列容器允许从一端新增元素,从另一端移除元素队列中只有队头和队尾才可以被外界使用,因此队列不允许有遍历行为队列中进数据称为——入队 push队列中出数据称为——出队 pop生活中的队列:排队功能描述:栈容器常用的对外接口构造函数:○queue que; //queue采用模板类实现,queue对象的默认构造形式○queue(const queue &que); //拷贝构造函数赋值操作:○queue...

2022-06-04 09:55:10 366

原创 C++——stack容器

概念:stack是一种先进后出(First In Last Out,FILO)的数据结构,它只有一个出口栈中只有顶端的元素才可以被外界使用,因此栈不允许有遍历行为栈中进入数据称为——入栈 push栈中弹出数据称为——出栈 pop生活中的栈:弹夹功能描述:栈容器常用的对外接口构造函数:○stack stk; //stack采用模板类实现,stack对象的默认构造形式○stack(const stack &stk); //拷贝构造函数赋值操作:○stack& operator=(const stack &...

2022-06-04 09:32:55 476

原创 C++——deque容器

功能:○双端数组,可以对头端进行插入删除操作deque与vector区别:○vector对于头部的插入删除效率低,数据量越大,效率越低○deque相对而言,对头部的插入删除速度会比vector快○vector访问元素时的速度会比deque快,这和两者内部实现有关deque内部工作原理:deque内部有个中控器,维护每段缓冲区中的内容,缓冲区中存放真实数据中控器维护的是每个缓冲区的地址,使得使用deque时像一片连续的内存空间...

2022-06-03 21:39:34 1133

原创 C++——vector容器

1 vector基本概念功能:○vector数据结构和数组非常相似,也称为单端数组vector与普通数组区别:○不同之处在于数组是静态空间,而vector可以动态扩展动态扩展:○并不是在原空间之后续接新空间,而是找更大的内存空间,然后将原始数据拷贝新空间,释放原空间○vector容器的迭代器是支持随机访问的迭代器2 vector构造函数功能描述:○创建vector容器函数原型:○vector v; //采用模板实现类实现,默认构造函数○vector(v.begin(), v.end()); //将v[...

2022-06-03 20:40:17 1181

原创 c++——string容器

目录1 string 基本概念2 string构造函数3 string赋值操作4 string字符串拼接5 字符串查找和替换6 字符串比较7 字符存取8 字符串插入和删除9 string子串本质:○string是C++风格的字符串,而string本质上是一个类string和char *区别:○char * 是一个指针○string是一个类,类内部封装了char*,管理这个字符串,是一个char*型的容器。特点:string类内部封装了很多成员方法例如:查找find,拷贝copy,删除delete 替换rep

2022-06-03 16:39:47 453

原创 C++——STL初识

○长久以来,软件界一直希望建立一种可重复利用的东西○C++的面向对象和泛型编程思想,目的就是复用性的提升○大多情况下,数据结构和算法都未能有一套标准,导致被迫从事大量重复工作○为了建立数据结构和算法的一套标准,诞生了STL○STL(Standard Template Library,标准模板库)○STL从广义上分为:容器(container)算法(algorithm)迭代器(iterator)○容器和算法之间通过迭代器进行无缝连接○STL几乎所有的代码都采用了模板类或者模板函数STL大体分为六大组件,分别是

2022-06-02 22:26:27 156

原创 C++模板

1 模板的概念模板就是建立通用的模具,大大提高复用性例如生活中的模板 一寸照片模板 PPT模板等模板的特点:○模板不可以直接使用,它只是一个框架○模板的通用并不是万能的2 函数模板○C++另一种编程思想称为 泛型编程, 主要利用的技术就是模板○C++提供两种模板机制:函数模板和类模板2.1 函数模板语法函数模板作用:建立一个通用函数,其函数返回值类型和形参类型可以不具体指定,用一个虚拟的类型来代表。语法:template<typename

2022-06-01 22:02:36 795

原创 C++文件操作

程序运行时产生的数据都属于临时数据,程序一旦运行结束都会被释放通过文件可以将数据持久化C++中对文件操作需要包含头文件<fstream>文件类型分为两种:1.文本文件 - 文件以文本的ASCII码形式存储在计算机中2.二进制文件 - 文件以文本的二进制形式存储在计算机中,用户一般不能直接读懂它们操作文件的三大类:1.ofstream: 写操作2.ifstream: 读操作3.fstream: 读写操作1 文本文件1.1 写文件写文件..

2022-05-28 08:25:29 986

原创 C++类和对象——多态

1.多态的基本概念多态是C++面向对象三大特性之一多态分为两类○静态多态:函数重载 和 运算符重载属于静态多态,复用函数名○动态多态:派生类和虚函数实现运行时多态静态多态和动态多态区别:○静态多态的函数地址早绑定 - 编译阶段确定函数地址○动态多态的函数地址晚绑定 - 运行阶段确定函数地址下面通过案例进行讲解多态...

2022-05-16 11:51:35 346

原创 C++类和对象——继承

继承是面向对象三大特性之一有些类与类之间存在特殊的关系,例如下图中:我们发现,定义这些类时,下级别的成员出了拥有上一级的共性,还有自己的特性。这个时候我们就可以考虑利用继承的技术,减少重复代码。1 继承的基本语法例如我们看到很多网站中,都有公共的头部,公共的底部,甚至公共的左侧列表,只有中心内容不同。接下来我们分别利用普通写法和继承的写法来实现网页中的内容,看一下继承存在的意义及好处。#include<iostream>using namespace st...

2022-05-06 16:49:57 768 1

原创 C++类和对象——C++运算符重载

运算符重载运算符重载概念:对已有的运算符重新进行定义,赋予其另一种功能,以适应不同的数据类型1. 加号运算符重载作用:实现两个自定义数据类型相加的运算

2022-05-05 16:58:50 236

原创 C++类和对象——友元

生活中你的家有客厅(public),有卧室(private)客厅所有来的客人都可以进去,但是你的卧室是私有的,也就是说只有你能进去但是呢,你也可以允许你的好闺蜜好基友进去。在程序里,有些私有属性,也想让类外特殊的一些函数或者类进行访问,就需要用到友元的技术友元的目的就是让一个函数或者类,访问另一个类中私有成员友元的关键字为 friend友元的三种实现•全局函数做友元•类做友元•成员函数做友元...

2022-03-22 21:02:07 116

原创 C++类和对象——对象的初始化和清理

目录对象的初始化和清理1 构造函数和析构函数2 构造函数的分类及调用3 拷贝构造函数调用时机4 构造函数调用规则5 深拷贝与浅拷贝6 初始化列表7 类对象作为类成员8 静态成员对象的初始化和清理○生活中我们买的电子产品都基本会有出厂设置,在某一天我们不用时候也会删除一些自己信息数据保证安全○C++中的面向对象来源于生活,每个对象也都会有初始设置以及 对象销毁前的清理数据的设置1 构造函数和析构函数对象的初始化和清理也是两个非常重要的安全问题一个

2022-02-11 14:22:51 1271

原创 C++类和对象——封装 例程

练习案例:点和圆的关系设计一个圆形类(Circle),和一个点类(Point),计算点和圆的关系。#include <iostream>using namespace std;//点和圆关系案例class Point{public: //设置x void setX(int x) { m_X = x; } //获取x int getX() { return m_X; } /

2022-02-08 16:13:26 231

原创 C++类和对象——封装

C++面向对象的三大特性为:封装、继承、多态C++认为万事万物都皆为对象,对象上有其属性和行为例如:人可以作为对象,属性有姓名、年龄、身高、体重...,行为有走、跑、跳、吃饭...车可以作为对象,属性有轮胎、方向盘、车灯...,行为有载人、放音乐、放空调...具有相同性质的对象,我们可以抽象称为类,人属于人类,车属于车类1 封装的意义封装是C++面向对象三大特性之一封装的意义:○将属性和行为作为一个整体,表现生活中的事物○将属性和行为加以权限控制封

2022-02-07 20:27:03 148

转载 C++进阶——函数提高

目录1 函数默认参数2 函数占位参数3 函数重载3.1 函数重载概述3.2 函数重载注意事项1 函数默认参数在C++中,函数的形参列表中的形参是可以有默认值的。语法:返回值类型 函数名 (参数 = 默认值){}#include <iostream>using namespace std;//函数默认参数//如果我们自己传入数据,就用自己的数据,如果没有,那么用默认值//语法: 返回值类型 函数名(形参 = 默认值){}int func(int

2022-02-06 18:57:41 129

原创 C++进阶——C++引用

目录1 引用的基本使用2 引用注意事项3 引用做函数参数4 引用做函数返回值5 引用的本质6 常量引用1 引用的基本使用作用:给变量起别名语法:数据类型 &别名 = 原名#include <iostream>using namespace std;int main(){ //引用基本语法 //数据类型 &别名 = 原名 int a = 10; //创建引用 int &b = a;

2022-02-05 16:06:22 110

原创 C++进阶——程序的内存模型-内存四区

c++核心编程本阶段主要针对C++面向对象编程技术做详细讲解,探讨C++中的核心和精髓。内存分区模型C++程序在执行时,将内存大方向划分为4个区域○代码区:存放函数体的二进制代码,由操作系统进行管理的○全局区:存放全局变量和静态变量以及常量○栈区:由编译器自由分配释放,存放函数的参数值,局部变量等○堆区:由程序员分配和释放,若程序员不释放,程序结束时由操作系统回收内存四区的意义:不同区域存放的数据,赋予不同的生命周期,给我们更大的灵活编程1 程序运行前..

2022-02-04 11:49:05 131

原创 C++基础——结构体

1 结构体基本概念结构体属于用户自定义的数据类型,允许用户存储不同的数据类型2 结构体定义和使用语法:struct 结构体名 { 结构体成员列表 };通过结构体创建变量的方式有三种:○struct 结构体名 变量名○struct 结构体名 变量名 = { 成员1值, 成员2值...}○定义结构体时顺便创建变量#include <iostream>using namespace std;#include<string>//1、创建学生..

2022-02-01 14:55:27 13168 4

原创 C++基础——指针

目录1 指针的基本概念2 指针变量的定义和使用3 指针所占内存空间4 空指针和野指针5 const修饰指针6 指针和数组7 指针和函数8 指针、数组、函数1 指针的基本概念指针的作用:可以通过指针间接访问内存○内存编号是从0开始记录的,一般用十六进制数字表示○可以利用指针变量保存地址2 指针变量的定义和使用指针变量定义语法:数据类型 * 变量名;#include<iostream>using namespace std;

2022-01-31 15:21:42 454

原创 C++基础——函数

1 概述作用:将一段经常使用的代码封装起来,减少重复代码一个较大的程序,一般分为若干个程序块,每个模块实现特定的功能2 函数的定义函数的定义一般有5个步骤:1、返回值类型2、函数名3、参数列表4、函数体语句5、return表达式语法:返回值类型 函数名 (参数列表){ 函数体语句 return表达式}#include<iostream>using namespace std;//函数的定义//语法://返..

2022-01-29 15:39:26 1054

原创 C++数组-二维数组

二维数组就是在一维数组上,多加一个维度1 二维数组定义方式1.数据类型 数组名[ 行数 ][ 列数 ];2.数据类型 数组名[ 行数 ][ 列数 ] = {{数据1,数据2} , {数据3, 数据4} };3.数据类型 数组名[ 行数 ][ 列数 ] = { 数据1, 数据2, 数据3, 数据4 };4.数据类型 数组名[ ][ 列数 ] = { 数据1, 数据2, 数据3, 数据4 }建议:以上4种定义方式,利用第二种更加直观,提高代码的可读性#include<io

2022-01-29 13:59:41 1844

原创 C++数组——一维数组

目录概述1.一维数组定义方式2 一维数组数组名3 冒泡排序概述所谓数组,就是一个集合,里面存放了相同类型的数据元素特点1:数组中每个数据元素都是相同的数据类型特点2:数组是由连续的内存位置组成的tips: 1.数组名的命名规范与变量名命名规范一致,不要和变量重名2.数组中下标是从0开始索引1.一维数组定义方式一维数组定义的三种方式:1.数据类型 数组名{数组长度};2.数据类型 数组名{数组长度} = {值1, 值2, ...};...

2022-01-28 17:09:28 3795 2

原创 C++程序流程结构-跳转语句

目录1.break语句2 continue语句3. goto语句1.break语句作用:用于跳出选择结构或者循环结构break使用的时机:○出现在switch条件语句中,作用是终止case并跳出switch○出现在循环语句中,作用是跳出当前的循环语句○出现在嵌套循环中,跳出最近的内层循环语句#include<iostream>using namespace std;int main(){ //break的使用时机 //1

2022-01-26 23:36:43 972

原创 C++程序流程结构-循环结构

C/C++支持最基本的三种程序运行结构:顺序结构、选择结构、循环结构○顺序结构:程序按顺序执行,不发生跳转○选择结构:依据条件是否满足,有选择的执行相应功能○循环结构:依据条件是否满足,循环多次执行某段代码1 while语句作用:满足循环条件,执行循环语句语法:while(循环条件){循环语句}解释:只要循环条件的结果为真,就执行循环语句。...

2022-01-25 20:57:13 1421

原创 C++程序流程结构-选择结构

C/C++支持最基本的三种程序运行结构:顺序结构、选择结构、循环结构○选择结构:依据条件是否满足,有选择的执行相应功能

2022-01-24 10:28:37 1751

S-function函数例程详细注释

S函数里的例程以及详细的注释,适合初学者观看学习

2021-10-03

空空如也

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

TA关注的人

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