- 博客(61)
- 资源 (11)
- 收藏
- 关注
转载 MATLAB中常用的运算符含义
MATLAB中常用的运算符解释我们在使用MATLAB中近场使用一些运算符,熟悉他们的作用将会使我们更好地编写matlab代码下面的链接就是对大部分运算符的释义:运算符含义
2022-01-03 22:43:38
845
原创 各种排序方法及代码实现
各种排序方法-(快排、插入、希尔、冒泡…)这篇文章主要就是记录各种排序方法的具体实现及代码实现里面的图片来自王道考研408计算机课程中。插入排序1.具体方法:2.代码实现:3.性能:空间复杂度:O(1)时间复杂度:最好O(n)[原本序列就是有序的];最坏O(n^2)[原本序列是逆序];平均O(n^2);希尔排序1.方法2.代码实现3.性能最坏时间复杂度O(n^2);当n在某个范围内的时候,可以达到O(n^1.3)确切的时间复杂度现在还不能具体证明总结:不是稳定算法,
2021-12-16 17:38:31
931
原创 matlab中读取wav文件并进行时域绘图
利用matlab进行wav文件读取与播放最近使用mems麦克风进行录音,并存储为wav文件之后通过matlab进行绘图,matlab代码如下:clcclearclose all [y, Fs] = audioread("ZL_L.wav");%将音频数据从wav文件中读出 %y表示wav文件中的声音数据,Fs表示音频采样率(再wav文件头中有定义) T = 1/Fs;
2021-12-12 18:36:48
12104
2
原创 word2019对输入时响应较慢
word2019在接收键盘输入时显示有较大延时或卡顿在写论文的时候发现了一个bug:在愉快输入文字(响应时间很短,很丝滑),突然word中对于自己键盘中输入的内容显示很慢,那种感觉就像吃了x,本身论文撰写就痛苦不堪,还来个电脑反应速度比我手敲键盘速度还慢,这是真的难受,就像陷入了泥淖中,步步艰难啊!!!然后上网百度,不是删注册表中的内容就是改配置,试了一大圈都没有用,遂卸了word重写装,换了版本也不行,重启…,,也不行(what fuxx!!);之后我发现论文其它部分输入响应都很正常,就是一小节中
2021-12-10 17:24:21
1273
原创 Linux--进程一些基本概念
序言:开始进行Linux方面的学习,搞清楚编程底层时执行的一些原理知识点,从此开始总结学习过程中的知识点。进程概述:进程是程序执行时的一个实例,也可以看作:充分描述程序已经执行到何种程度的数据结构的汇集。每一个进程都有一个父进程,一个进程可以产生一个或者多个子进程,但最终都要死亡。进程的目的:从内核的角度来看,进程就是担当分配系统资源(CPU时间、内存等)的实体。进程描述符(PCB):进程描述符都是task_struct类型结构,他的字段包含了与一个进程相关的所有信息(进程的优先级、进程当前的状态(
2021-10-17 22:08:16
182
原创 C++--specialization(特化)、partial specialization(偏特化)
C++中的特化和偏特化模板特化如下是泛型编程中的模板方法:template <class Key>class hash{};特化就是相对于Key参数来说的,如果没有特化的话,所有的Key参数都会应用上面的类的实现,但是如下定义几个特殊Key参数的class的类,当使用到不同的Key值时首先应用于当前特化的版本://Key值为char时所用的class实现template<>class hash<char>{ size_t operator()(cha
2021-09-29 21:48:49
577
原创 C++归并排序
C++归并排序算法概述:归并排序是将有序的两个数组进行排序,即将待排序的一个数组不断进行递归,直到递归成两个都只含有一个元素的数组,则对这两个之含有一个元素的数组进行排序,不断回溯,直到回溯到可以将待排序数组分成两个有序数组,之后对其进行最后一次有序数组排序,最后两个有序数组合并为一个有序数组,就得到了需要进行排序的数组,可以从小到大进行排序,也可以从大到小进行排序。代码:void mergeSort(vector<int>& nums, vector<int>&am
2021-09-04 22:39:35
406
原创 STL适配器(Adapters)
STL适配器(Adapters)**概述:**这里的适配器是以一种内含的方式去改变一个对象,比如A中内含一个B,A改造B中的某一个接口,但是内部的事情全部是由B来做的。1. 容器适配器stack、queue内部含有一个deque。2. function的适配器bind2nd已经被bind取代了。not1:3. 新型适配器bind是从C++11开始提供的一个adapter从上图中可以看出来,bind绑定一个函数或者函数对象之后或者一个成员函数之后,返回值即为当前绑定的函数的返回值
2021-08-27 00:00:16
425
原创 STL仿函数和函数对象
STL仿函数和函数对象** 仿函数就是重载了函数调用运算符“()”的class,类内部的成员函数重载了“()",这样的class所创建出来的对象叫作-函数对象或者叫仿函数 其中成员函数返回值为bool类型的叫作谓词(pred)。**我们自己所写的仿函数需要继承unary_function或者binary_funciont才能能够融入到STL中:注:以上图片均来自侯捷老师网课...
2021-08-26 23:06:04
101
原创 STL算法部分
STL算法部分** 概述 **:STL中的算法都是以模板的方式进行定义的,如:template<typename Iterator>std::Algorithm(Iterator iter1, Iterator itr2, ...){...}可以看到上面的模板参数是迭代器。1. accumulateaccumulate(InputIterator first, InputIterator last, T init){…}这个函数的作用是通过在初值init上加上区间[f
2021-08-26 22:41:48
148
原创 STL算法部分
STL算法部分STL中的算法都是模板函数,方便我们对多种容器进行操作,而算法对容器进行操作是通过迭代器来实操的。迭代器对算法的影响从下面的图片上可以看到根据迭代器的类型不同调用算法的对应重载版本。再举一个copy的例子,用以说明迭代器对于算法的影响:...
2021-08-24 23:20:48
104
原创 STL迭代器部分
STL迭代器迭代器的分类如下图所示,迭代器可以分为四类:从下图中可以看到每个容器的迭代器属于以上四个类型中的什么类型:我们还可以使用以下方式得到迭代器的命名,我们使用typeid来测试编译器对于传入的对象的命名,例如:typeid(iter).name(),它就会传出编译器对于iter对象的命名。如下图:istream迭代器以下是在不同编译器中的定义:ostream迭代器以上图片来源是侯捷老师在网课中的图片。...
2021-08-24 22:53:01
103
原创 STL容器
STL容器1.vector** vector内部**vector较常使用的成员函数有:begin()、end()、size()、capacity()、empty()、operator[]、front()、back()…vector在进行两倍扩充的时候需要大量调用析构函数和构造函数,因为它要释放之前空间中申请的空间,并且需要重新开辟空间去存放新放入的元素。GUN4.9版本中vector容器的内部构造如下:可以看出vector迭代器占12个字节(内部有三个指针)。2.arrayTR1中的ar
2021-08-24 22:15:36
135
原创 C++STL(分配器allocator总结)
C++STL–分配器我们在使用容器的时候需要传入容器所要装载的数据类型,STL中的容器都是以模板的形式创建的,所以我们只需要在容器名后直接指明需要装入的数据类型即可,例:vector/< int />,一般在最后一个模板参数是默认(如果我们不指定的情况下)的分配器的类型–alloc,alloc它内部会调用new_operateor(),而new_operator()内部会调用malloc(),达到从内存中取空间来存放需要传入的数据。有了创建就会有释放,dealloc(),内部调用delete
2021-08-23 17:24:33
230
原创 计算机网络--TCP、UDP通信总结
计算机网络部分TCP的三次握手和四次挥手三次握手第一次握手:Client将标志位置为1,随机产生一个seq=x,并将改数据包发送给Server,Client进入SYN_SENT状态,等待Server确认。第二次握手:Server收到数据包后将标志位SYN=1知道Client请求建立连接,Server将标志位SYN和ACK都置为1,ack=x+1,随机产生一个seq=y,并将数据包发送给Client以确认连接请求,Server进入SYN_RCVD状态。第三次握手:Client收到确认后,检查ack
2021-08-16 23:04:26
218
原创 dfs、dp、贪心算法总结(leetcode刷题专用)
算法经验总结篇深度优先遍历(dfs)对于遍历算法来说,dfs经常会用到,且频率也比bfs高得多,下面总结一下目前做题之后对于dfs所想所感:dfs一般思路如下:1. 明确下一遍历子状态是什么样的2. 题解的条件是什么3. 是否需要剪枝,需要的话那么剪枝的条件又是什么(一般是去重操作,去重操作一般解法:a. 先排序后判断重复情况是什么,并去除重复解b. 用一个数组进行标记,将用过的元素标记,下次再取的时候先判断元素是否用过再决定用不用此元素。)dfs其实就是一种递归,里面也包含回溯,就像开一
2021-07-31 16:13:13
371
原创 十六进制转换成十进制
牛客刷题有些题目就不记录了,只记录以后可能用到的。以下代码将字符串表示的十六进制转换成十进制对了,牛客网上的是要自己写输入和输出的。#include <iostream>#include <map>#include <string>using namespace std;class Solution{ map<char, int> myMap = {{'0', 0},
2021-07-23 23:27:08
123
原创 C++STL---容器部分总结
学习内容C++ STL容器部分C++中有容器,容器大多都是以泛型编程的方式出现(就是模板方法),这样做的好处就是同意容器支持多种类型的数据,C++中的容器按照存储的内容可以分为两个部分:序列式容器、关联式容器;序列式容器序列式容器有以下几种容器:array、vector、list、heap、stack、deque、queue、slist…array与vector可以分为一类,都是数组型容器,不同的是array的大小在创建之后就固定了,而vector可以根据所装入容器中的元素数量进行动态扩展。l
2021-07-18 23:08:12
258
1
原创 找工作准备-00
工作准备–复习马上需要找工作了,需要进行复习。所以从现在开始逐渐复习,现将每天所得记录下来,以便后来复习以及其他人也可以作为参考。在牛客上刷题,遇到一道编程题,编程题如下:题目:地铁迷在某个城市组织了地铁打卡活动。活动要求前往该城市中的所有地铁站进行打卡。打卡可以在站外或者站内进行。地铁的计价规则如下:只要不出站,就不计费;出站时,只计算进站和出站站点的距离。如在同一个站点进出站,按照最低票价 a 元计算。假设地铁票不会超时。大部分站点都是通过地铁线连通的,而且地铁站的连通是双向的(若 A,B 连通
2021-07-14 23:35:50
211
1
原创 cout精度设置(sqrt()函数实现--要求不能够使用任何库函数实现)(牛客网上刷题看到的)
设置cout显示数字的有效位数编程题:要求:编写一个函数实现sqrt()功能,题目中要求不能够使用任何库函数,所以只能够使用基本的运算符进行操作了。思路:以下代码思路为---->使用二分法进行逼近。代码如下:/* copy一次以上求一个数m的n次开方运算,函数实现*/#include <iostream>using namespace std;class MySqrt {public: double msqrt(double m, int n) { doub
2021-07-14 21:22:28
244
原创 C++数据结构--链表
C++中链表导言:我们在数据结构中常见的链表,在c语言中可以用一个结构体进行表示,那么在C++中该如何表示呢,接下来我们来看看这两种语言中的链表表示方法。C语言中的链表typedef struct LINKNODE{ //数据域,假设数据类型为int型 int data; //指针域 struct LINKNODE* prev; struct LINKNODE* next; }LinkNode,*LinkNode;C++中的链表//链表结点定义template<class T
2021-06-26 15:34:54
179
1
原创 CPU架构概述
CPU架构概述导言: cpu为一个具有特定功能的芯片,里面含有指令集。cpu可以分为两个主要的单元,分别是:算数逻辑单元与控制单元。我们所使用的软件都要经过cpu内部的指令集来完成。这些指令集的设计主要被分为两种设计理念,这就是世界上最常见的两种cpu架构:精简指令集(Reduced Instruction Set Computer, RISC);复杂指令集(Complex Instruction Set Computer, CISC)。精简指令集(RISC)这种cpu设计中,指令集较为精简,每个指令
2021-06-24 23:32:23
1863
1
原创 C/C++数据结构与算法--快速排序
数据结构与算法–快速排序**导言:**数据结构是算法的基础,可以说算法就是构建在数据结构上的一种程序员思想的体现。我们需要解决一个问题,首先就是将这个问题进行抽象,抽象成一种数据结构,之后用我们所学过的知识,来构建解决这个问题的步骤,也就是问题解决的算法,我们在学习数据结构与算法时最常见的算法有查找算法、排序算法,在排序算法中,最长用到的算法就是快速排序算法,下面我们来介绍排序算法,且使用一个随时间生成的随机矩阵来测试快速排序对不同数量的数组元素的排序时间。代码#include <iostre
2021-06-24 15:56:34
269
1
转载 如何通过git工具将本地工程上传到Github中的方法
使用git工具上传本地工程到github中有时候我们需要将本地工程上传到github账号中,这样便于对工程文件的管理,经过百度之后看到一篇文章介绍了详细的方法,且亲测有效,下面记录且分享这篇文章:上传方法...
2021-06-07 12:37:12
74
原创 二叉树线索化算法
二叉树线索化简述为什么需要线索二叉树?对于普通的二叉树来说,如果随便给出二叉树中的一个结点,让你从这个结点遍历整个二叉树,这是做不到的(其实对于普通的二叉树来说要做到找出一个结点的前驱需要创建两个结点指针变量,在进行二叉树遍历的时候(先、中、后),一个指针指向当前访问的结点,一个指针指向上一个访问的结点,通过判断当前访问的结点是否为需要找前驱的结点,如果是则另一个指针则是所要找的前驱),因为每个二叉树结点都只有左右结点,不能够往回(父结点)追溯,所以是不能够访问整个二叉树上面的剩下来的所有结点的。
2021-06-05 16:52:48
799
原创 Cortex-M3处理器内核与基于Cortex-M3的MCU关系
Cortex-M3Cortex-M3简述Cortex-M3是ARM公司设计的ARMv7架构下Cortex系列的首秀,其目的是为了让32位处理器加入单片机市场,Cortex-M3的特点有:性能强劲功耗低实时性好代码密度得到很大改善使用更加方便低成本的整体解决方案开发工具众多:keil、Cube…二者之间的关系上图是基于Cortex-M3内核的MCU,Cortex-M3相当于一个小CPU(中央处理器)。MCU就是我们看到的芯片,不同芯片生产厂家在得到Cortex-M3内核的使用授权之
2021-06-03 23:58:17
2751
1
转载 vscode编译运行c/c++时输出中文乱码解决方法
导言当我在vscode中编译运行C++代码的时候,cout输出中文发现输出为乱码,遂上网查找大神解决方法,在寻找多个方法并亲试之后,发现还是这篇文章中介绍的解决方法最靠谱,下面分享给大家,也给自己一个记录:链接如下:C++输出乱码解决方法...
2021-05-31 16:27:54
1674
原创 数据结构---串的朴素模式匹配算法
导言数据结构中的串就是我们常说的字符串,当我们需要在一个长字符串中寻找目标字符串的时候就需要一种算法来进行定位目标字符串,下面记录一个目标字符串匹配算法----朴素模式匹配算法待匹配的字符串-----被匹配字符串需要寻找的子串-----匹配字符串/目标字符串#include <iostream>#include <string>using namespace std;//朴素匹配算法int naive_match(const string& origial_
2021-05-29 13:16:34
401
转载 二次插值、线性插值、拉格朗日插值
实际开发中需要用到二次插值算法,在网上找了一圈,还是觉得这个好用,下面是这个博文的链接:线性插值、二次插值、拉格朗日插值
2021-05-26 10:10:01
2401
原创 vivado2018.3创建一个流水灯(基于创龙k7核心开发板)
vivado新建工程&流水灯导言之前一直用Quartus学习FPGA,第一次接触Xilinx开发工具vivado,看了一些新建工程教程之后,记录一下自己新建工程的过程,作为备忘,也作为初学者的参考。使用的vivado版本为2018.3使用的开发板为创龙的k7核心板。双击vivado图标打开软件打开软件开始见面,选择创建一个工程3.开始一个新建工程向导填写工程名、选择工程路径工程类型对于源文件我们在之后进行编写,所以我们选择暂不指定源文件FPGA型号选择我们可以直接输
2021-04-26 13:05:16
1359
原创 关于FSMC调试经验
stm32 FSMC写数据调试FSMC是一款可以扩充存储空间的类似总线一样的技术,也就是方便在stm32外部挂一些大的存储器或者和存储器有类似控制机制的外设,例如LCD、TFT…,具体的原理可以参照stm32开发手册。调试利用FSMC写入数据到FPGA写时序:当外设挂在NEx对应引脚的时候就已经默认了对应的操作地址范围:例如对于Bank1,又可以将其划分为四个区,ne1、ne2、ne3、ne4,对应的将0x60000000~0x63ffffff划分为四个64M的地址范围,当选中其中的某个区之后
2021-04-02 10:06:57
783
原创 C++11 2.0 ranged-base for
ranged-base forC++11的2.0版本中提供了一种访问容器的另一种形式:代码说明:#include <iostream>#include <vector>using namespace std;int main(){ vector<int>vint; //ranged-base for //初始化容器 for (int ix = 0; ix < 10; ix++) { vint.push_back(ix); } //遍历
2021-03-18 22:28:28
344
原创 C++11 2.0 auto
auto假如你不想写被创建对象的类型,或者你不知道等式返回值类型是什么,你可以使用auto关键字,让编译器自动确定变量类型。代码示例:#include <iostream>#include <list>#include <string>using namespace std;int main(){/* ///// list<string> c; ... list<string>::iterator ite; ite =
2021-03-18 22:19:31
128
原创 C++11 2.0 variadic templates
varivadic templates - 数量不定的模板参数C++11 2.0版本中新增了几个功能。我们在写模板的时候如果需要传多个参数(未提前定),我们可以使用varivadic templates模型。如下用示例说明:#include <iostream>using namespace std;//必须要有的重载函数版本void print() {}//variadic templates(since C++11)//数量不定的模板参数template <ty
2021-03-18 22:08:40
148
原创 C++设计模式-命令模式
命令模式-行为变化模式定义:将一个请求(行为)封装为一个将对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作。----《设计模式》GOF类图:应用场景:系统需要将请求调用者和请求接收者解耦,使得调用者和接收者不直接交互。请求调用者无须知道接收者的存在,也无须知道接收者是谁,接收者也无须关心何时被调用。系统需要在不同的时间指定请求、将请求排队和执行请求。一个命令对象和请求的初始调用者可以有不同的生命期,换言之,最初的请求发出者可能已经不在了,而命令对象
2021-03-16 17:33:52
148
原创 C++设计模式-外观模式
外观模式-接口隔离定义:为子系统中的一组接口提供一个一致(稳定)的界面,Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易(复用)。----《设计模式》GOF类图:使用场景:当组件的客户和组件中各种复杂的子系统有了过多的耦合,随着外部客户程序和各子系统的烟花,这种过多的耦合面临很多变化的挑战。解决问题:简化外部客户程序和系统间的交互接口;将外部客户程序的演化和内部子系统的变化之间的依赖相互解耦。#define _CRT_SECURE_NO_WARNINGS #incl
2021-03-16 17:09:16
117
原创 C++设计模式-适配器模式
适配器模式-接口隔离定义:将一个类的接口转换成客户希望的另外一个接口。使得原本由于接口不兼容而不能在一起动作的那些类可以一起工作。----《设计模式》GOF类图:应用场景:在软件系统中,由于应用环境的变化,常常需要将”一些现存的对象“放在新的环境中应用,但是新环境要求的接口是这些现存对象所不满足的。解决的问题:应对迁移的变化:既能利用现有对象的良好实现,同时又能满足新的应用环境所要求的接口。代码示例:#include <iostream>using namespace s
2021-03-16 16:51:45
72
原创 C++设计模式-代理模式
代理模式-接口隔离定义:为其他对象提供一种代理控制(隔离,使用接口)对这个对象的访问。----《设计模式》GOF类图:使用场景:在面向对象系统中,有些对象由于某种原因(比如对象创建的开销很大,或者某些操作需要安全控制,或者需要进程外的访问等),直接访问会给使用者、或者系统结构带来很多麻烦。解决的问题:在不是去透明操作对象的同时来管理/控制这些对象特有的复杂性;增加一层间接层。代码示例:#include <iostream>#include <string>
2021-03-16 16:12:59
129
原创 C++设计模式-单例模式
单例模式-对象性能模式定义:保证一个类仅有一个实例,并提供一个该实例的全局访问点----《设计模式》GOF类图:应用场景:在软件系统中,经常有这样一些特殊的类,必须保证他们在系统中只存在一个实例,才能确保他们的逻辑争取行,以及良好的效率。解决的问题:绕过常规的构造器,提供一种机制来保证一个类只有一个实例。代码:单例模式中有的人将其又进行划分,分为“懒汉式”、“饿汉式”;下面分别展示这两种单例模式的代码示例:#include<iostream>using namespace
2021-03-16 15:11:48
91
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人