自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(101)
  • 收藏
  • 关注

原创 https://blog.csdn.net/onlyongwang/article/details/104603214

阿斯顿

2020-03-01 23:49:09 479

原创 bfs 套路 C语言实现 附带1162地图分析队列代码

#define MAX_NUMS 1000000#define MAX 1000000000typedef struct Node_ { int x; int y;}Node;typedef struct Queue_ { Node arr[MAX_NUMS]; int front; int rear;}Queue;vo...

2020-03-01 23:45:37 790

原创 【算法】BFS套路 含队列代码队列

1126 地图分析#define MAX_NUMS 1000000typedef struct Node_ { int x; int y;}Node;typedef struct Queue_ { Node arr[MAX_NUMS]; int front; int rear;}Queue;void QueueI...

2020-03-01 23:35:17 275

转载 【C++】STL容器总结

https://blog.csdn.net/hudfang/article/details/52934130三大类容器:1. 序列式容器:vector、deque、listvector是一种动态数组,在内存中具有连续的存储空间,支持快速随机访问。由于具有连续的存储空间,所以在插入和删除操作方面,效率比较慢。vector有多个构造函数,默认的构造函数是构造一个初始长度为0的内存空间,且分...

2018-09-13 14:18:14 229

原创 【Python】模块和包

把代码放在不同的py文件中,每个py文件就是一个模块。不同模块中,可以存在相同的变量名。在一个模块中调用其他模块时候,用import关键字,比如 import math。当模块很多时候,模块名容易重名,这时候需要把模块放在不同的包中,这样模块重名也可以了。引用完整模块需要:在文件系统中,一个包就是一个文件夹,一个模块就是一个py文件,包可以有多级。包与普通文件夹不同之处在于,包...

2018-09-13 00:02:58 181

原创 【Python】decorator

编写decorator:首先编写decorator函数,以@log为例:def log(f): def fn(x): print 'call ' + f.__name__ + '()...' return f(x) return fn在这里,log函数中定义了一个fn函数,fn中打印了log并返回f,log函数返回fn。注意,这...

2018-09-12 23:37:49 196

原创 【Python】Python中的匿名函数

由于Python支持高阶函数的存在,而高阶函数支持函数作为输入参数,有时候,我们不定义传入的函数,而直接在传入参数的地方,把这个函数的表达式写出来更方便,这就是Pythong中的匿名函数。>>> map(lambda x: x * x, [1, 2, 3, 4, 5, 6, 7, 8, 9])[1, 4, 9, 16, 25, 36, 49, 64, 81]上面就是匿...

2018-09-12 10:20:13 247

原创 【Python】Python中返回函数

Python的函数不但可以返回int、str、list、dict等数据类型,还可以返回函数!

2018-09-11 10:05:56 342

原创 【Python】Python中的高阶函数

map()接受两个参数,一个是函数变量,一个是List,map()会把函数变量作用于List中的每个元素,最后返回一个新的List。reduce()接受两个参数,一个是函数变量,一个是List;与map()的区别在于,reduce中的函数变量必须接受两个参数,而reduce则会把这个函数依次作用于前面的处理结果和下一个元素。例如,编写一个f函数,接收x和y,返回x和y的和:d...

2018-09-11 09:25:43 168

原创 【Python】函数式编程

函数式编程,更接近计算,而不是机器指令在Python中,可以创建一个变量指向一个函数,比如 f=abs,那么f就是一个函数变量,我们可以调用它:f(-10)。可以接受函数变量作为参数的函数就是高阶函数。而这个函数变量,在高阶函数中往往会处理其他参数,举例:def add(x, y, f): return f(x) + f(y)add(-5, 9, abs) ...

2018-09-10 22:53:57 135

原创 【Python】列表生成式

生成列表的方法有:1. 使用range:>>> range(1, 11)[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]range(1, 100, 2) 可以生成list [1, 3, 5, 7, 9,...]2. 使用for,以及append()方法3. 最重要的列表生成式:>>> [x * x for x in ra...

2018-09-10 16:13:16 255

原创 【Python】迭代

Python的for循环操作很抽象。迭代与按下标访问数组最大的不同是,后者是一种具体的迭代实现方式,而前者只关心迭代结果,根本不关心迭代内部是如何实现的。1. 迭代List对于有序集合,元素确实是有索引的。如果我们想知道元素的下标,可以使用enumarate()函数。>>> L = ['Adam', 'Lisa', 'Bart', 'Paul']>&gt...

2018-09-10 12:04:16 223

原创 【Python】切片

如果对数组进行分段提取,我们可能会用下标的方式,如果提取的量太大,那么可能会比较麻烦,所以Python提供了切片操作符。例如:>>> L = ['Adam', 'Lisa', 'Bart', 'Paul']>>> L[0:3]['Adam', 'Lisa', 'Bart']第一个参数0表示,从下标0开始;第二个参数3表示,直到3,但不包括3...

2018-09-10 11:28:13 12260 2

原创 【Python】函数

默认参数:Python中定义函数,可以有默认参数,也就是说,在定义函数时候,给形参赋值;调用的时候,,如果没有传入新的参数,就用默认的参数,如果传入了新的参数就用新的参数。比如下面这个求n次方的函数:def power(x, n=2): s = 1 while n > 0: n = n - 1 s = s * x return...

2018-09-10 10:41:35 164

原创 【Python】set

set和List类似,都是数组,区别在于,set中的元素不会重复,且存放是无序的。创建set的方法是,调用set,并将一个List传给它。>>> s = set(['A', 'B', 'C'])由于set是不存在重复元素的,如果我们传入一个有重复元素的List,系统会自动删掉重复的元素。...

2018-09-07 18:18:52 234

原创 【Python】dict

Python中的dict类似C++中的map,每个元素有key,以及对应的值。d = { 'Adam': 95, 'Lisa': 85, 'Bart': 59}len()可以计算dict中的元素个数。可以通过,key值读取dict中对应的值,也可以通过get()获取key对应值;这两个方法区别在于,如果key不存在,第一种方法会报错,第二种方法会返回None...

2018-09-07 17:43:09 267

原创 【C++】Mutex

学习Mutex首先需要了解互斥锁的概念,详情见之前的文章。Mutex类就是C++中实现互斥锁的类,互斥锁有可重入和不可重入之分:mutex是不可重入的互斥锁,recursive_mutex是可重入的互斥锁;加上上锁时间的限定后,就有了另外两个互斥锁:mutex_timed, recursive_timed_mutex,分别是可重入/不可重入的互斥锁。 互斥锁的操作有:上锁 ...

2018-09-06 22:11:37 2077

原创 【Python】 条件语句

if语句1. if语句中,使用四格缩进表示统一代码块,不像c中使用{}。2. Python中也有 if...else, if...elif...elif...else这样的语句 for语句个人觉得for语句比较抽象以及跳跃...有点不合逻辑了L = ['Adam', 'Lisa', 'Bart']for name in L: print name1. for...

2018-09-06 15:00:08 228

原创 【Python】 List和tuple

List的建立方法很简单:L = ['Adam', 'Lisa', 'Bart'],也可以通过下标访问append()可以在List末尾添加元素insert()可以在任意位置添加元素pop()可以删除List中任意位置的元素 tuple也是数组的一种,与List区别在于,它一旦创建,就不能被修改,不能添加删除。写法上用()代替了[]。t = (0,1,2,3,4,5,6,7...

2018-09-06 10:36:39 153

原创 【Python】 变量

1. 与C++不同,变量前面无须加类型2. 字符串需要用 '' ''  或者 ' ' 括起来; / 表示转行; ''' ''' 可以表示连续换行;Unicode字符串可以表示中文,要在字符串前加u3. 整整之间的运算,结果是整数;浮点数之间的运算,结果是浮点数;整数浮点数混合运算,结果是浮点数。4. 布尔:Python把0、空字符串''和None看成 False,其他数值和非空字符串都...

2018-09-06 10:07:45 167

原创 【C++】纯虚函数、虚函数、普通函数的继承

这三种函数的使用区别如下:纯虚函数:只提供一个接口,具体实现方法需要派生类自己去重载。由于纯虚函数的出现,基类变成了一个抽象类,只能被继承,而不能被实例化;纯虚函数的话,必须在派生类中重载。所以纯虚函数只提供一个方法的接口,实现方式需要派生类自己去写。虚函数:提供接口,并提供默认的实现方法;派生类也可以根据需要自己去重载。这就是说,虚函数提供默认的实现方法,如果派生类自己不重载它的...

2018-09-06 09:53:34 8767 1

转载 【TCP/IP协议】epoll

自己来试着总结下select与epoll的区别:在阻塞模式下,select会不断查询内核,看有没有事件触发,如果有的话,会返回事件数组;接着读写函数会,依次查看事件数组,看看是哪个事件触发,继而对其进行读写。epoll的话,会直接返回事件数组中被触发的时间,读写函数无须依次查看所有时间,直接去读写那个触发的事件就好。-----------------------------------...

2018-09-05 10:07:06 250

转载 【C++】 线程的互斥与同步

同一个进程的线程共享进程内的绝大部分资源,当一段访问这些共享资源的代码块,有可能被多个线程执行时,那么这段代码块就称为临界区。当有多个线程并发的在临界区执行时,程序的执行结果会出现不确定性,这种情况称之为竞态条件。多线程编程中,避免出现竞态条件的一项重要解决方案就是,保证多个线程在临界区是互斥的。所谓的互斥,就是指不能同时有多于一个线程进入临界区。 保证临界区互斥的重要技术,就是互斥锁。 互...

2018-09-02 22:09:48 1427

原创 【C++】 线程的创建和结束

线程的创建用的函数是pthread_create,用到的库是pthread。成功会返回0,失败返回错误码。thread是输出,输出的是线程句柄,其实pthread_t代表的就是创建的线程的ID。统一进程内的线程,除了栈区是特有的,其他区域都是共享的。 线程的终止分为主动终止和被动终止。...

2018-09-02 21:15:31 2164

原创 【TCP/IP协议】socket套接字

1. Socket之前讲过TCP/IP各层的定义,基于套接字的编程处在传输层和应用层的中间。Socket能够兼容多种网络协议,最常见的是TCP/UDP。下面是使用scoket编程,客户端与服务器端TCP连接的整个过程:注意看每个状态下的括号里的就是程序中具体用到的函数,而具体程序中,客户端和服务器端是这样调用这些函数的:客户端创建套接字(socket),与服务器端进行连接(...

2018-08-30 11:15:26 2012

原创 【C++】makefile

makefile用途:makefile文件帮助我们记录了整个项目工程的所有需要编译的文件列表,这样我们在编译时仅需要输入简单的make命令就能编译出我们期望的结果 makefile文件反映了整个项目中各个模块的依赖关系,这样我们改动了某些源文件后,仅需简单的输入make命令,make工具就会根据makefile文件里描述的依赖关系帮助我们分析哪些模块需要重新编译,并执行相应的操作。make...

2018-08-27 23:22:24 332

原创 【数据库】MySQL以及SQL简介

MySQL是一个数据库管理系统,目前属于Qracle公司。它的特点是体积小,速度快,总体拥有成本低,代码开源,目前被中小型公司都拿他作为网站数据库。SQL全称是结构化查询语言,是查询数据库用的一种语言。1. SQL语言的约束分类:约束类型:         主键               默认值           唯一                 外键             ...

2018-08-23 09:51:47 210

原创 【C++】OpenCV实现对运动目标的追踪

用到的三个知识点:1. 反向投影简单来说,将图像转化一下,每个位置的像素点的值改为,所有像素值位于该点像素值对应的区间内的像素点的个数!灰度图像...

2018-08-22 23:02:21 3893

原创 【C++】指针与引用的区别

先说原理:指针是一个内存中的实体,它的存储对象是它指向的对象的地址;引用并不是一个实体,它只是另一个变量的一个别名。根据原理的不同,他们有不同的特性:1、指针是一个实体,需要分配内存空间。引用只是变量的别名,不需要分配内存空间。2、引用在定义的时候必须进行初始化,并且不能够改变。指针在定义的时候不一定要初始化,并且指向的空间可变。(注:不能有引用的值不能为NULL)3、有多...

2018-08-21 09:36:11 277

转载 【C++】智能指针

详情参考:https://www.jianshu.com/p/e7d5443d6614

2018-08-14 22:53:20 104

原创 【C++】面向过程中的static

全局静态变量:相比于全局变量,全局静态变量只在定义它的源文件中才可以调用!在其他源文件(.cpp)调用会报错。在其他源文件中,要是想调用这个全局静态变量,只能是在定义该全局静态变量的源文件中,创建一个返回值为该全局静态变量的函数,完了在其他源文件中调用这个函数。 局部静态变量:1. 相比于局部变量,局部静态变量只能在定义它的函数内部被调用!在定义它的函数之外或者其他源文件都不能...

2018-08-13 21:27:09 127

原创 【C++】面向对象中的static

静态数据成员静态数据成员静态数据成员不依赖于对象,而取决于类,也就是说:静态数据成员在类创建时候就有了,而普通数据成员在类实例化之后才创建,并且,实例化多少个类,就会产生多少个普通数据成员,但静态数据成员永远只有一个(值是可能变的,取决于你怎么用它)。另外静态数据成员的初始化要在类外进行。 静态成员函数是用来调用静态成员函数的,不能调用非静态成员或非静态成员函数!!...

2018-08-10 19:46:04 191

原创 【C++】友元函数/友元类

友元函数:全局友元函数:类中的函数申明为全局友元函数后,在main中可以访问这个函数;成员友元函数:类中的函数申明为某个友元的友元函数后,在这个类中可以访问这个函数。 友元类:在类中可以申请,某个类是自己的友元,然后这个类就可以访问自己的成员函数与对象成员了...

2018-08-10 19:28:22 186

原创 【C++】异常处理

对可以预见的错误进行合理安排关键字:try... catch...throw 

2018-08-09 23:33:06 121

原创 【C++】RTTI

如果我有一个父类 Flyable,还有两个子类  Bird和Plane,有一个函数 doSomething,它的形参是一个Flyable指针,如果我想在程序中判断,这个指针指向的到底是Bird还是Plane,那我可以用typeid来判断,判断过后还可以用dynamic_cast,把这个指针转化为相应类型。...

2018-08-09 23:13:27 168

原创 【算法】链表算法题思路

做了很多链表相关的算法题,感觉解题思路不外乎下面三种:1. 一快一慢双指针比如,倒数第k个节点问题,判断有环链表的入环节点2. 使用栈结构比如,3. pre,cur,next三指针同时出击。比如,链表翻转问题...

2018-08-07 10:05:47 531

原创 【C++】抽象基类和纯虚函数

抽象基类和纯虚函数不能被实例化的基类被称为抽象基类,这样的基类只有一个用途,那就是用它来派生出其他类,可使用纯虚函数的声明来创建纯虚函数。纯虚函数在虚函数表中不指向任何函数成员。值得注意的是:声明抽象基类后 1. 派生类必须声明相应的方法;2. 不能再对这个基类实例化附上一个Shape, Circle,Triangle的例子: 【C++】RTTI如果我有一个...

2018-08-05 20:08:19 1511

原创 【数据结构】二叉树算法题思路

首先需要做到掌握三种常规遍历(前、中、后)以及按层遍历,几乎所有的算法题都逃不开这三种方法。其次,做二叉树题目,很多情况都可以使用递归的方法来做,要经常想这个。 举例:1. 二叉树镜像问题2. 二叉树找子树问题...

2018-08-04 18:09:51 500

原创 【数据结构】二叉树

基本概念:遍历的前中后是相对根节点来说的:平衡二叉树:一棵树的所有子树都满足:左右子树的深度差不超过1,就是平衡二叉树 搜索二叉树:一棵树的所有子树都满足:头结点比所有左边节点要大,比所有右边节点小。特性:搜索二叉树中序遍历的结果一定是,从小到大的序列;一个二叉树的中序遍历结果是从小到大的,那它也一定是搜索二叉树。平衡二叉树和搜索二叉树详解: http://...

2018-08-01 17:11:19 141

原创 【C++】深拷贝和浅拷贝

之前介绍过,在实例化对象时,如果想要拷贝一个已经存在的对象给新的对象,那么就会调用这个类的拷贝构造函数。浅拷贝:只是简单拷贝地址。深拷贝:将数据成员中的地址与地址指向的数据都拷贝过来。...

2018-07-31 16:40:54 313

空空如也

空空如也

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

TA关注的人

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