自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

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

阿斯顿

2020-03-01 23:49:09 27 0

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

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

2020-03-01 23:45:37 62 0

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

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

2020-03-01 23:35:17 26 0

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

https://blog.csdn.net/hudfang/article/details/52934130 三大类容器: 1. 序列式容器:vector、deque、list vector是一种动态数组,在内存中具有连续的存储空间,支持快速随机访问。由于具有连续的存储空间,所以在插入和删除...

2018-09-13 14:18:14 109 0

原创 【Python】模块和包

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

2018-09-13 00:02:58 87 0

原创 【Python】decorator

编写decorator: 首先编写decorator函数,以@log为例: def log(f): def fn(x): print 'call ' + f.__name__ + '()...' retu...

2018-09-12 23:37:49 90 0

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

由于Python支持高阶函数的存在,而高阶函数支持函数作为输入参数,有时候,我们不定义传入的函数,而直接在传入参数的地方,把这个函数的表达式写出来更方便,这就是Pythong中的匿名函数。 >>> map(lambda x: x * x, [1, 2,...

2018-09-12 10:20:13 104 0

原创 【Python】Python中返回函数

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

2018-09-11 10:05:56 214 0

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

map() 接受两个参数,一个是函数变量,一个是List,map()会把函数变量作用于List中的每个元素,最后返回一个新的List。 reduce() 接受两个参数,一个是函数变量,一个是List;与map()的区别在于,reduce中的函数变量必须接受两个参数,而reduce则会把这个函...

2018-09-11 09:25:43 66 0

原创 【Python】函数式编程

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

2018-09-10 22:53:57 53 0

原创 【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. 使用fo...

2018-09-10 16:13:16 79 0

原创 【Python】迭代

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

2018-09-10 12:04:16 121 0

原创 【Python】切片

如果对数组进行分段提取,我们可能会用下标的方式,如果提取的量太大,那么可能会比较麻烦,所以Python提供了切片操作符。 例如: >>> L = ['Adam', 'Lisa', 'Bart'...

2018-09-10 11:28:13 3119 0

原创 【Python】函数

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

2018-09-10 10:41:35 68 0

原创 【Python】set

set和List类似,都是数组,区别在于,set中的元素不会重复,且存放是无序的。 创建set的方法是,调用set,并将一个List传给它。 >>> s = set(['A', 'B', 'C...

2018-09-07 18:18:52 117 0

原创 【Python】dict

Python中的dict类似C++中的map,每个元素有key,以及对应的值。 d = { 'Adam': 95, 'Lisa': 85, 'Bart': 59 } len()可以计算dict中的元素个数。 ...

2018-09-07 17:43:09 123 0

原创 【C++】Mutex

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

2018-09-06 22:11:37 1357 0

原创 【Python】 条件语句

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

2018-09-06 15:00:08 108 0

原创 【Python】 List和tuple

List的建立方法很简单:L = ['Adam', 'Lisa', 'Bart'],也可以通过下标访问 append()可以在List末尾添加元素 insert()可以在任意位置添加元素 pop()可以删除List中任意位置的元素 ...

2018-09-06 10:36:39 51 0

原创 【Python】 变量

1. 与C++不同,变量前面无须加类型 2. 字符串需要用 '' ''  或者 ' ' 括起来; / 表示转行; ''' ''' 可以表示连续换行;Unicode字符串可以表示...

2018-09-06 10:07:45 83 0

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

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

2018-09-06 09:53:34 4173 0

转载 【TCP/IP协议】epoll

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

2018-09-05 10:07:06 116 0

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

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

2018-09-02 22:09:48 688 0

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

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

2018-09-02 21:15:31 1264 0

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

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

2018-08-30 11:15:26 1044 0

原创 【C++】makefile

makefile用途: makefile文件帮助我们记录了整个项目工程的所有需要编译的文件列表,这样我们在编译时仅需要输入简单的make命令就能编译出我们期望的结果 makefile文件反映了整个项目中各个模块的依赖关系,这样我们改动了某些源文件后,仅需简单的输入make命令,make工具就会...

2018-08-27 23:22:24 154 0

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

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

2018-08-23 09:51:47 67 0

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

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

2018-08-22 23:02:21 2075 0

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

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

2018-08-21 09:36:11 186 0

转载 【C++】智能指针

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

2018-08-14 22:53:20 47 0

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

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

2018-08-13 21:27:09 57 0

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

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

2018-08-10 19:46:04 70 0

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

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

2018-08-10 19:28:22 72 0

原创 【C++】异常处理

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

2018-08-09 23:33:06 50 0

原创 【C++】RTTI

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

2018-08-09 23:13:27 48 0

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

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

2018-08-07 10:05:47 322 0

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

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

2018-08-05 20:08:19 1046 0

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

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

2018-08-04 18:09:51 265 0

原创 【数据结构】二叉树

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

2018-08-01 17:11:19 56 0

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

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

2018-07-31 16:40:54 217 0

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