自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 资源 (2)
  • 收藏
  • 关注

原创 数据结构:图

首先,得了解一些图的基础概念,才能在往下走的时候不出现误解;图:由边顶点集(vertex)和边集组成(edge)例子:所以又分为有向图和无向图;图的存储结构一般有邻接矩阵和邻接表,在做笔试题的时候,领接矩阵一般会内存冗余度大,所以一般选用邻接表。邻接表:GraphAdjList这里是邻接表的实现;我们可以用C++中的unorder_map进行实现,只需要边表节点VertexNode集合。首先,将顶点集正的节点都new内存空间保存到Graph中,可以看到,索引key就是顶点的值,v

2020-07-31 23:57:28 280

原创 MySQL必知必会:No.2

一、用通配符进行过滤No.1小结:①show 产看数据②检索:selectdistinct、Limit③排序:order by、dec、asc④过滤:where(包括一些字句)、and、or、not、inA:什么是通配符?如何使用?如何使用like操作符进行通配搜索对数据进行过滤?1、LIKE操作符前面已经提到过通配符“*”,从一个表中显示所有的列信息。前面讲的过滤where中的字句都是检查某个范围等,这些值都是已知的,那怎么搜索位置的信息呢?当然也是用到where作为条件进行过

2020-07-30 08:36:37 148

原创 MySQL必知必会:No.1

1、Q:如何将.sql文件加载到数据库中?直接进入到需要存储表的数据库(例如yyn),用source .sql文件的路径;注意在window中路径\t可能会有一些转义运算符,所以需要注意用"\"来解决这个问题。

2020-07-29 10:30:09 84

原创 C++:输入输出

1、笔试题中C++的输入输出通过cin输入,并且用间隔隔开可以读入多个数,用回车可以读入数组或字符串2、字符串string字符串中的添加可以通过string(iterator first,iterator last)进行添加。(1)strcpy不能用于string进行复制。(2)string s3(8, ‘0’);传建一个包含8个元素的string对象,并且所有的元素初始化为0;(注意这里的0不是空格,而是字符串0)(3)string s4(s3);复制构造函数,深拷贝(4)auto firs

2020-07-27 20:40:17 131

原创 操作系统:初识

1、OS功能(1)核心功能:进程管理(CPU管理)多进程并发运行,也就是同时运行多个程序(QQ、游戏、IDE等)①进程控制:创建、暂停、唤醒、撤销;②进程调度:调度策略、优先级;③进程通信:进程间通信;(2)内存管理①内存分配②内存共享③内存保护④虚拟内存管理例如:运行大型游戏需要大量内存,但是如果内存太小,不能运行游戏吗?A:不对,因为OS有内存管理(3)设备管理①设备的分配和调度②设备无关性③设备传输控制④设备驱动(4)文件管理①存储空间管理②文件的操作③目录的

2020-07-25 11:23:25 90

原创 STL:map

1、RBTree中保存的树结点结构pair<class T1,class T2>{T1 first;T2 second}mep中的iterator指向的就是这种结构体,所以可以通过iterator访问key(first)和value(second)。而插入操作也是插入pair这个结点。上图显示插入的是节点pair<…>& val,注意插入操作中,由于红黑树自身的性质可以自己排好序,所以自动给的节点key插入。emplace可是插入,但是与insert输入形式不同,

2020-07-24 21:36:08 101

原创 C++:文字常量区

#include "stdafx.h"#include<iostream>#include<string>using namespace std;void strReverse(char* str);int main(){ char str[] = "I love you,baby!!!";//注意char* str = "I love you,baby!!!";str指向的是文字常量区,不能改变里面的值 //而char str[] = "I love you,b

2020-07-23 21:48:09 563

原创 TCP/IP:三次握手和四次挥手

Linux的一些网络命令:模板:指令 参数type 指令:查看指令的类型1、exec() 22<>(大于和小于号表示输入输出,重定向) /dev/tcp/www.baidu.com/80(path,一个路径这个路径是百度服务器的文件,即一切皆文件,和一个端口号)其实就是船舰一个socket通信,通信怎么建立的归属于内核exec 22<&- 关闭22是到百度的输入输出流。通过文本表现的方式,与百度服务器端口中建立了一个连接。通信就是建立连接,具体的细节后面介绍。连接有了

2020-07-23 17:53:08 129

原创 Web基础:网络协议、HTTP、Web服务器

一、网络概念1、终端(手机、PC等)终端是相对于服务器而言的,连接在服务器上的东东。网络就把各个终端连接起来。2、网络按覆盖范围:局域网(LAN,local):主要是路由器覆盖的家庭网络城域网(MAN)广域网(WAN,wide):常说的上外网,连接外面的Internet3、发明网络历史分布式,军方为了避免所以的服务通过一个服务器运转,所以发明了分布式的概念,通过许多服务器进行服务,在一个服务器挂掉之后,其他服务器能定上。首先,ARPAnet网络(其实也就是一种协议)军方网络,然后NSFne

2020-07-20 17:07:59 1034

原创 C++:继承及虚函数

1、继承的形式派生类:基类{};例如:B:A{};①派生类 不能直接访问基类的私有成员,必须通过基类方法进行访问(通过A::基类方法())。引申,所以引入了一个访问控制符protected,这个就是为了派生类直接去访问基类的成员数据,其他情况protected与private完全一样。②创建派生类对象时,程序首先穿件基类对象,所以基类对象的构造函数先于派生类调用。派生类构造函数小结:(1)首先创建类对象;(2)派生类构造函数应通过成员初始化列表将基类信息传递给基类构造函数;例如:A(int a,i

2020-07-19 16:57:29 403

原创 C++:函数

1、函数原型就是函数的声明2、函数的参数分为形参和实参,两只的功能是作数据传送。一般传递方法有三种:值传递、指针传递、引用传递。引用中,对形参变量的操作就是对其相应的目标对象的操作。注意一个例子:void swap(char*a,char* b){ char* temp = a; a = b; b = temp;}//这个函数并不能改变传入的实参的值int main(){ char* a = 5; char* b = 6; swap(a,b);原因:因为这里传入的是指针,指针也是

2020-07-17 16:11:59 109

原创 C++:对象模型:关于vptr(虚指针)和vtbl

虚函数主要是在类继承中的重点,很重要!!!一个类中有虚函数(无论有多少个),就会有一个虚指针。继承:不仅继承数据也会继承函数(是继承调用权而不是内存大小),父类有虚函数那么子类就一定也会有。因为在我们声明类(A)时,里面会有一些成员函数,在我们去实现成员函数(func1())时,我们用作用域操作符::去操作类的成员函数(A::func1()),所以在继承的时候,例如类B:A(B继承A),B中也有函数func1(),但是B中的函数与A中的虽然同名,但是是不同的两个函数,A:func1()和B::func

2020-07-16 21:25:26 396

原创 C++:reference(引用)

int main(){ int x = 0; int*p = &x; int& r = x;//r代表x,先在r、x都是0 int x2 = 5; r = x2;//r不能重新代表其他物体,现在r、x都是5,重点 int& r2 = r;//现在r2是5,r2代表r return 0;}reference就是一种漂亮的pointer,变量就是保存的值得内存地址本身。#include "stdafx.h"#include<iostream>

2020-07-16 20:34:41 500

原创 C++:三个主题

一、variadic template(数目不定的模板参数)十分重要的知识点。这里讲的就是模板函数中传入的参数为一个和一包。有点像int main(argv,char*[] argv);第一个参数时表示输入的命令个数,第二个则是指针数组,数组中的指针指向的是每一个字符数组。也就是一个命令,例如一个文件路径。以上图像中表示的是通过递归的方式将所有的参数打印出来。边界条件中有一个函数重载中的没有参数的函数,所以就没有语句执行。二、auto用法例子:list<string> c;.

2020-07-16 17:30:17 211

原创 C++:标准库(STL)

既然标准库的团队已经设计好了这些库,那么我们就要用起来,最好把所有的算法都测试一遍。就可以做到在以后需要一些算法时可以直接拿来用而不是自己再编写一个程序(也没有库中的算法好啦!!!)...

2020-07-16 17:01:04 80

原创 数据结构:树

命名:Tree(树)、根结点(Root)、子树(Subtree)树作为线性结构的基本操作:

2020-07-15 21:20:04 84

原创 C++:member template 成员模板

语法:template<class T1,class T2>struct pair{ typedef T1 first_type; typedef T2 second_type; T1 first; T2 second; pair() :first(T1()),second(T2()){} pair(const T1& a,constT2& b) :first(a),second(b){} template<class U1,c

2020-07-14 16:25:30 167

原创 C++ :namespace经验之谈

为了部门之间写到代码中的变量极易重复,所以每个部门或个人可以设计自己的namespace用来将自己写的代码进行封装。例子:using namespace std;//std这个命名空间中有很多重要的函数或变量名,也就是一个封装,std::cout;可以这样用,所以我们个人加入设计了自己的namespace young,用的时候用young::变量或函数名就行;using namespace std;namespace young{ const int ages = 18;}//我自己的namesp

2020-07-14 15:43:46 120

原创 C++:pointer-like classes,智能指针

概念:比指针更加智能的指针,于是变为了class补充:C++中操作符重载很重要,而smart pointer就需要包含指针的和->的操作符,所以就需要重载。以上就显示出一个pointer-like class shared_ptr如何通过操作符重载->和拥有了与一般指针相同的操作。C++语法规定:->操作符重载后,在类对象调用操作符并返回对象后,->任然会作用在后面不会消失。pointer-like classes,关于迭代器背景:在STL中的容器中,一定带迭代器,迭代器

2020-07-14 15:38:37 191

原创 C++:转换函数

转换函数分为两种:1、自己定义的类通过转换函数转换为其他类型2、其他类型通过转换函数(类构造函数)转换为自己定义的类形式:1、operator typeName(){};条件:①转换函数必须为类方法②转换函数不能指定返回类型③转换函数不能有参数;例子:#define CONV_FUN_H#include"stdafx.h"#include<iostream>//这里写一个将分数转化为小数的转换函数class Fraction { int m_numerator;//分

2020-07-14 15:06:29 418

原创 C++:预处理器、作用域、static、const以及内存管理

1、宏定义及替换#define ADD(x,y) x+yint m=3;m += m*ADD(m,m);//注意:宏定义一般大写并且不加分号结束,且宏替换就是替换,不做别的事//例子中为: m = m + m*x + y;而不是m = m + m*(x + y);所以就是简单的替换2、作用域注意:全局>静态>局部语句(for,while,if)中的局部变量结束自动销毁。3、static①隐藏②默认初始化为0,但是函数保存在未初始化的全局或静态的BSS 段。③保持局部变

2020-07-13 16:14:35 157

原创 算法预备知识

1、算法设计要求正确性、可读性、健壮性(当输入数据不合法时,算法也能做出相关处理,而不是产生异常或莫名其妙的结果)、时间效率高和存储量低2、算法效率的度量方法推导大O阶方法:①用常数1取代运行时间中的所有加法常数②在修改后的运行次数函数中,只保留最高阶项③如果最高阶项存在且不是1,则去除与这个项相乘的常数。//例子1:常数阶int sum = 0,n=100;//执行一次sum = (1+n)*n/2;//执行一次printf("%d",sum);//执行一次//函数运行次数:f(n)

2020-07-12 13:54:06 113

原创 C++:运算符及优先级

一、cout实现输出其他进制cout<<hex<<i<<endl; //输出十六进制数cout<<oct<<i<<endl; //输出八进制数cout<<dec<<i<<endl; //输出十进制数cout<<bin<<i<<endl; //输出二进制数cout << bitset<10>(a) << endl;// 输

2020-07-10 21:01:34 218

原创 C++:cup内存存储格式

1、分为大端存储和小端存储大端存储就是变量十六进制中高位地址保存到CPU内存的地位地址中。小端存储就是变量十六进制中地位地址保存到CPU内存的地位地址中2、计算数组指针的内存大小sizeof()注意:指针的内存大小与系统有关,32位都是4byte,64位都是8byte,而数组指针和变量指针所指向的内存大小不同,也就是++的时候前进的步长不同。...

2020-07-07 15:47:54 209

原创 C++:循环和关系表达式

1、for(int i = 0;i<size;i++)声明语句表达式不带分号,只能出现在for语句中,也就是在for中声明并初始化的变量i,当程序循环结束后,变量i就消失了。不会离开for语句,所以为了i延续,需要在for外声明i。2、各种数据类型的内存类型32位系统64位系统short2bytes2byteschar1bytes1bytesint4bytes8byteslong4bytes8byteslong long8bytes

2020-07-06 12:59:14 138

转载 算法:字符串匹配算法KMP

首先介绍关键概念:这位博主A讲的十分详细且好理解这位博主B编程实现我的小结:1、KMP:需要首先构造子串一个可以查询的数组,博主A中描述了前缀和后缀最长相同长度的思路,这个数组后面主要是为了在匹配的时候用于子串的后溯(注意边界为起点)。2、然后就是匹配的算法,通过在母串的范围内进行匹配,若子串在这个范围内全部完成,那匹配完成,反之,未匹配成功。其中数组的用法是针对子串的,所以在编程的时候,需要有独立的模块思想,并且要有指针的思想,例如,将子串和母串看成两个独立的模块,两者的索引看做指向各自的指针(

2020-07-05 09:40:37 66

原创 测试++、--前后缀、=赋值、指针引用优先级

i++ 与 ++i 的主要区别有两个:1、 i++ 返回原来的值,++i 返回加1后的值。2、 i++ 不能作为左值,而++i 可以。本来我想当然的以为在C语言中指针预算符的优先级肯定比++高,后来在写程序时发现并没有这么当然。在C语言中,自增运算符++和指针运算符*的优先级关系为左++ > * > 右++比如 ++ *i 相当于 ++ (*i) ,指针i对应的变量+1。*i ++ 相当于 * (i++) ,指针i,也就是地址值 +1(其实是加1个变量所占的地址空间)#inc

2020-07-04 19:49:21 870

原创 C++:组合与继承

Q:类和类有什么关系呢?A:组合委托继承一、复合(composition,组合),表示has aadapter:改造、适配、配接template<class T>class queue{...protected: deque<T> c;//这里就表示queue中has a deque.....public: bool empty() const{return c.empty();}//于是queue中的所有的功能都是调用deque来实现的。 void

2020-07-03 09:29:16 140

原创 C++:堆、栈与内存管理

一、所谓stack和heap例子:class complex{...};....//作用域(scope){ complex c1(1,2);//从c1在作用域中相当于int a=0;的局部变量,存在于作用域中的一块内存,当调用函数是就会形成stack来方式参数以及返回地址,但是在函数结束的时候,这个对象就会消失。 complex * p = new complex(3);//这是通过new动态分配的内存,是通过操作系统提供的一块global内存空间,程序通过new动态分配独得若干区块,保存在h

2020-07-02 22:12:41 113

原创 C++:复Complex类的实现过程

1、不带指针的#pragma once#ifndef __COMPLEX__#define __COMPLEX__class complex{ double re, im;//他们是私有的,一般不能直接取得,要取在private中建立的是非成员函数,例如友元函数 friend complex& __doapl(complex&, const complex&);public: complex(double r =0, double i = 0):re(r),im(i

2020-07-02 12:46:07 293

原创 C++:操作符重载与临时对象

operator overlording(操作符重载,成员函数)this实现:c2 += c2;//重载+=,所有的成员函数都带有一个参数,即this,上面的c2就是*this,也就是传入this = &c2;inline complex&complex::opertaor += (const complex& r){return __doapl(this,r);//这里的this就是+=左边的部分,并且传入另一个函数中}inline complex&__d

2020-07-01 15:56:20 187

原创 C++:头文件与类的声明

complex.h1、防卫式声明#ifndef COMPLEX//告诉编译器曾经没有#define COMPLEX。。。。#endif作用:发展一个复数,把它放在头文件中,因为很多程序要用到这个头文件,include"complex",当第一次include这个头文件后,编译器就会进入头文件中,并且定义_COMPLEX_,这个就定义好了,在第二次include时,就不需要再进入头文件定义了,因为编译器已经有_COMPLEX_了,避免了重复的include含入 的动作。Header(头文件)布局

2020-07-01 14:35:30 2299

多光谱掌纹图像包括ROI和原图

多光谱掌纹图像,包括ROI和原图,针对非接触掌纹掌脉识别场景的需求和目前存在的问题,本文设计了一种 非接触掌纹掌脉采集设备方案。通过使用主动光源和滤光片,抑制了环境光对 手掌中心块定位算法的干扰,简化了中心块定位算法;同时,这一设计也抑制 了环境光对样本质量的影响,使得光照强度预处理算法不再必须。通过使用距 离传感器,减小了样本尺度变化,避免了样本离焦模糊,使尺度预处理算法得 以简化。通过双摄系统缩短了样本采集时间。本文通过这些方法实现了凭借硬 件设计简化算法设计的目的,并通过实验验证了该方案的有效性。

2020-07-05

基于CCS的FSK的C语言仿真实现

通过在CCS软件中,用C语言代码实现FSK的仿真试验,通过观察输入输出以及调制后的信号sample来观察是否成功

2019-06-22

空空如也

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

TA关注的人

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