- 博客(55)
- 资源 (1)
- 收藏
- 关注
转载 2020-10-22.c和.h文件的区别
一个简单的问题:.c和.h文件的区别学了几个月的C语言,反而觉得越来越不懂了。同样是子程序,可以定义在.c文件中,也可以定义在.h文件中,那这两个文件到底在用法上有什么区别呢?2楼:子程序不要定义在.h中。函数定义要放在.c中,而.h只做声明.否则多引用几次,就会发生函数重复定义的错误。3楼:.h只做声明,编译后不产生代码4楼:这样做目的是为了实现软件的模块化使软件结构清晰,而且也便于别人使用你写的程序纯粹用 C 语言语法的角度,你当然可以在 .h 中放任何东西,因为 #inc
2020-10-22 09:56:25
524
3
转载 2020-10-22C#精髓 第四讲 GridView 72般绝技
说明:准备出一个系列,所谓精髓讲C#语言要点。这个系列没有先后顺序,不过尽量做到精。可能会不断增删整理,本系列最原始出处是csdn博客,谢谢关注。C#精髓第四讲 GridView 72般绝技作者:清清月儿主页:http://blog.csdn.net/21aspnet/时间:2007.3.24-26为了写本文,又搭工又搭料,累的2天2宿没睡觉,这篇文章实在是耗费我太多的心血,版权永远属于CSDN社区的我,请不要试图修改本文,破坏全文的完整性,希望您尊重我的劳动成果!...
2020-10-22 09:55:11
238
转载 2020-10-22Python 基础——range() 与 np.arange()
range()返回的是range object,而np.arange()返回的是numpy.ndarray(type(np.arange(10)) == np.ndarray) 两者都是均匀地(evenly)等分区间; range尽可用于迭代,而np.arange作用远不止于此,它是一个序列,可被当做向量使用。 range()不支持步长为小数,np.arange()支持步长为小数 两者都可用于迭代 两者都有三个参数,以第一个参数为起点,第三个参数为步长,截止到第二个..
2020-10-22 09:52:39
275
转载 2020-10-22标准正态分布表(scipy.stats)
0. 标准正态分布表与常用值 Z-score 是非标准正态分布标准化后的 x即z = x − μ σ z = \frac{x-\mu}{\sigma}z=σx−μ 表头的横向表示小数点后第二位,表头的纵向则为整数部分以及小数点后第一位;两者联合作为完整的 x,坐标轴的横轴 表中的值为图中红色区域的面积,也即 cdf,连续分布的累积概率函数,记为Φ ( x ) \Phi(x)Φ(x) cdf 的逆,记为Φ − 1 ( x ) \Phi^{-1}(x)Φ−1(x)...
2020-10-22 09:51:20
3700
2
原创 csdn排名上升规则测试
日期 总排名 积分 粉丝数 赞 评价 收藏 访问 转载 新发文 给出的评论 给出的赞 10/21 101736 977 24 30 7 17 4w+ 10/22 101735 974 24 31 7 17 ...
2020-10-22 09:47:34
121
转载 2020-10-22希腊字母发音对照表及其latex命令
拉丁字母是26个,希腊(Greek)字母是24个 发音即是它们各自的latex形式, 大写字母的是其小写latex首字母大写后的形式,如(ΔΔ:\Delta) notation 西方的数学家们在推导数学定理时,仍然沿用并不好写也不好记的希腊字母,可见文艺复兴,可见希腊数学对后世的巨大影响。 注意区分ΔΔ(发音为delta,表示增量)与∇∇(发音为nabla,表示微分,不属于希腊字母,只是一个记号,用来表示微分算子) 小写 大写 latex ..
2020-10-22 09:45:59
700
转载 2020-10-22从np.random.normal()到正态分布的拟合
先看伟大的高斯分布(Gaussian Distribution)的概率密度函数(probability density function):f(x)=12π‾‾‾√σexp(−(x−μ)22σ2)f(x)=12πσexp(−(x−μ)22σ2)对应于numpy中:numpy.random.normal(loc=0.0, scale=1.0, size=None)参数的意义为:loc:float 此概率分布的均值(对应着整个分布的中心centre)scal...
2020-10-22 09:44:02
196
转载 2020-10-22OpenCV 获取摄像头并显示摄像头视频
OpenCV 获取摄像头,新建窗口显示摄像头视频结合Leaning OpenCV 第二个例子 显示一个视屏文件 写了一下 获取摄像头的代码为并且创建窗口显示的代码为: #include "stdafx.h" #include <cv.h> #include <cxcore.h> #include <highgui.h> int main( int argc, char** argv ) {...
2020-10-22 09:41:38
188
转载 2020-10-22在线识图搜索引擎
前言最近在逛淘宝时发现了淘宝的图片搜索功能,可能是我太Low了这个技术点已经实现很长时间了。想想自己能不能实现这个功能,起初我是这么想的,对两张图片从左上角的第一个像素点一直比较到右下角的最后一个像素点,并在比较时记录它们的相似度,可能是我太天真了(主要还是知识限制了想象),这样做有很多问题,比如说两张图片大小不一致、核心要素点的位置不同等...最终只得借助网络了,找到了一种叫做均值哈希的算法(Average hash algorithm),接下来具体阐述它的基本思路以及适用场景。均值哈希的基本思路
2020-10-22 09:40:35
778
转载 2020-10-22图像处理常用边缘检测算子总结
不同图像灰度不同,边界处一般会有明显的边缘,利用此特征可以分割图像。需要说明的是:边缘和物体间的边界并不等同,边缘指的是图像中像素的值有突变的地方,而物体间的边界指的是现实场景中的存在于物体之间的边界。有可能有边缘的地方并非边界,也有可能边界的地方并无边缘,因为现实世界中的物体是三维的,而图像只具有二维信息,从三维到二维的投影成像不可避免的会丢失一部分信息;另外,成像过程中的光照和噪声也是不可避免的重要因素。正是因为这些原因,基于边缘的图像分割仍然是当前图像研究中的世界级难题,目前研究者正在试图在边缘提取中
2020-10-22 09:30:20
655
转载 2020-10-21Eigen: C++开源矩阵计算工具——Eigen的简单用法
Eigen非常方便矩阵操作,当然它的功能不止如此,由于本人只用到了它的矩阵相关操作,所以这里只给出了它的一些矩阵相关的简单用法,以方便快速入门。矩阵操作在算法研究过程中,非常重要,例如在图像处理中二维高斯拟合求取光斑中心时使用Eigen提供的矩阵算法,差不多十来行代码即可实现,具体可见:http://blog.csdn.net/hjx_1000/article/details/8490653Eigen的下载与安装,可参考下面两个博客:http://blog.csdn.net/hjx_1000/art
2020-10-21 17:26:57
336
转载 2020-10-21CUDA从入门到精通
CUDA从入门到精通(零):写在前面在老板的要求下,本博主从2012年上高性能计算课程开始接触CUDA编程,随后将该技术应用到了实际项目中,使处理程序加速超过1K,可见基于图形显示器的并行计算对于追求速度的应用来说无疑是一个理想的选择。还有不到一年毕业,怕是毕业后这些技术也就随毕业而去,准备这个暑假开辟一个CUDA专栏,从入门到精通,步步为营,顺便分享设计的一些经验教训,希望能给学习CUDA的童鞋提供一定指导。个人能力所及,错误难免,欢迎讨论。PS:申请专栏好像需要先发原创帖超过15篇。..
2020-10-21 17:25:07
432
1
原创 Docker上手系列:Docker入门hello world
Docker 是一个开源的应用容器引擎。Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器完全使用沙箱机制,相互之间不会有任何接口,更重要的是容器性能开销极低。
2019-06-23 23:32:19
515
1
原创 【java设计模式系列】3. 抽象工厂模式(Abstract Factory)
抽象工厂模式相对于工厂方法模式来说,每个具体工厂可以生产一族产品(即多种产品);而工厂方法模式是具体工厂生产相应的具体产品,只能生产一种产品。当产品族中只有一种产品时抽象工厂模式退化成工厂方法模式。
2016-09-23 17:21:26
377
1
原创 java类级别访问修饰符作用域
java类级别共有4个访问级别:public protected default private作用域 当前类 同包 子类 其他public √ √ √ √protected √ √ √ ×default √ √ × ×
2016-09-23 15:10:08
1344
1
原创 【UML建模】UML几种类间关系
1、继承指的是一个类(称为子类、子接口)继承另外的一个类(称为父类、父接口)的功能,并可以增加它自己的新功能的能力,继承是类与类或者接口与接口之间最常见的关系;在Java中此类关系通过关键字extends明确标识,在设计时一般没有争议性;2、实现指的是一个class类实现interface接口(可以是多个)的功能;实现是类与接口之间最常见的关系;在Java中此类关系通过
2016-09-23 10:20:37
506
原创 【数据结构】二叉排序树和平衡二叉树对比
总分支数 = 总结点数 - 1叶子结点数 = 双分支结点数 + 1前序遍历:根左右中序遍历:左根右后序遍历:左右根注意:知道前序和后序不能唯一确定一棵二叉树
2016-09-20 16:46:19
676
原创 shell比较语法
EQ 就是 EQUAL等于NE 就是 NOT EQUAL不等于 GT 就是 GREATER THAN大于 LT 就是 LESS THAN小于 GE 就是 GREATER THAN OR EQUAL 大于等于 LE 就是 LESS THAN OR EQUAL 小于等于
2016-09-01 21:37:21
461
原创 解释bash中2>&1 &
2>&1 &1) bash中0,1,2三个数字分别代表:标准输入(STDIN_FILENO)、标准输出(STDOUT_FILENO)、标准错误输出(STDERR_FILENO);2)2>&1表示将标准错误重定向到标准输入, 注意:如果写成 2>1 则表示将标准错误重定向到1这个文件中;3)最后带一个&是为了让命令以deamon形式运行,不需要当前shell等待此命令执行完才
2016-09-01 21:32:05
1770
1
原创 shell常用命令-$用法
$n $1 the first parameter,$2 the second...$# The number of command-line parameters.$0 The name of current program.$? Last command or function's return value.$$
2016-08-30 11:09:01
841
原创 区分 @NotEmpty @NotBlank @NotNull
java验证框架中@NotEmpty、@NotBlank、@NotNull很容易弄混淆,简单区分一下:1)@NotEmpty 用在集合类上面2)@NotBlank 用在String上面3)@NotNull 用在基本类型上
2016-08-23 11:05:45
425
原创 【java基础】BigDecimal 精度控制
BigDecimal提供了精确的数值计算,其中8种舍入方式值得掌握。1、ROUND_UP舍入远离零的舍入模式。在丢弃非零部分之前始终增加数字(始终对非零舍弃部分前面的数字加1)。注意,此舍入模式始终不会减少计算值的大小。2、ROUND_DOWN接近零的舍入模式。在丢弃某部分之前始终不增加数字(从不对舍弃部分前面的数字加1,即截短)。注
2016-08-23 11:02:51
1256
原创 【查找】折半查找/二分查找
/** * 折半查找 * @param a 给定数组 * @param low * @param high * @param k 需要查找的数字 * @return */ public static int bSearch(int[] a, int low, int high, int k){ int mid; //循环 while(low<=hi
2016-08-18 09:00:38
337
原创 【排序】堆排序
思路:堆排序执行过程描述如下:(大顶堆)1)从无序序列所确定的完全二叉树的第一个非叶子结点开始,从右到左,从下到上,对每个结点进行调整,最终将得到一个大顶堆。对结点的调整方法:将当前结点(假设为a)的值与其孩子结点进行比较,如果存在大于a值的孩子结点,从中选出一个最大的一个与a交换。当a来到下一层的时候重复上述过程,直到a的孩子结点值都小于a的值为止;2)将当前无序序列中的第一
2016-08-17 23:06:22
338
原创 【排序】快速排序
/** * 快速排序 * @param a * @param low * @param high */ public static void quickSort(int[] a, int low, int high) { int l = low; int h = high; if (l >= h) { return; } int temp = a[l
2016-08-17 18:49:25
259
原创 【排序】冒泡排序
/** * 冒泡排序 * @param a 给定数组 */ public static void bubbleSort(int[] a){ for(int i=a.length-1;i>=0;i--){ boolean isSwap = false; for(int j=1;j<=i;j++){ if(a[j-1]>a[j]){ int temp
2016-08-17 16:54:11
354
原创 RESTful入门概述
RESTful(Representational State Transfer)表述性状态转移,就是目前最流行的一种互联网软件架构。它结构清晰、符合标准、易于理解、扩展方便,所以正得到越来越多网站的采用。需要注意的是:RESTful是一种软件架构风格,而不是标准,它只是提供了一组设计原则和约束条件。主要用于客户端和服务器交互类的软件,基于这个风格设计的软件可以更简洁,更有层次,更易于实
2016-08-17 14:27:08
1271
原创 java反转单链表
class Node { private int data; private Node next;}public static Node reverseLinkedList(Node head){ if (head == null || head.next == null){ return head; } Node first = head; Node cur = hea
2016-08-17 11:20:21
296
原创 【java设计模式系列】2. 单例模式(Singleton)
1. 懒汉模式优点:延迟加载缺点:出现多线程同步问题public class Singleton { /* 持有私有静态实例,防止被引用,此处赋值为null,目的是实现延迟加载 */ private static Singleton instance = null; /* 私有构造方法,防止被实例化 */ private Singleton() { } /* 静态工程
2016-08-16 21:54:08
294
原创 【java设计模式系列】1. 工厂方法模式(Factory Method)
工厂方法模式分为三种:1. 普通工厂模式2. 多个工厂方法模式3. 静态工厂方法模式1. 普通工厂模式:就是建立一个工厂类,对实现了同一接口的一些类进行实例的创建。首先,创建二者的共同接口:public interface Sender { public void Send();}其次,创建实现类:public class MailSender impl
2016-08-16 21:15:41
479
原创 【java设计模式系列】0. 设计模式概述
1. 设计模式简介设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。2. 分类总体来说设计模式分为三大类:创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。结构型模式,共七种:适配器模式、装饰器模式、代理模
2016-08-16 19:42:00
424
原创 【java基础】java中的Iterator和Iterable 区别
1. 都是接口,但所在包位置不同java.lang.Iterable java.util.Iterator 2. 为什么一定要实现Iterable接口,为什么不直接实现Iterator接口呢? 看一下JDK中的集合类,比如List一族或者Set一族,都是实现了Iterable接口,但并不直接实现Iterator接口。 仔细想一下这么做是有道理的。 因为
2016-08-16 19:28:00
617
转载 【深入理解java集合系列】LinkedHashSet实现原理
1. LinkedHashSet概述: LinkedHashSet是具有可预知迭代顺序的Set接口的哈希表和链接列表实现。此实现与HashSet的不同之处在于,后者维护着一个运行于所有条目的双重链接列表。此链接列表定义了迭代顺序,该迭代顺序可为插入顺序或是访问顺序。 注意,此实现不是同步的。如果多个线程同时访问链接的哈希Set,而其中至少一个线程修改了该Set,则它必
2016-08-16 16:22:19
496
转载 【深入理解java集合系列】HashSet实现原理
1. HashSet概述: HashSet实现Set接口,由哈希表(实际上是一个HashMap实例)支持。它不保证set 的迭代顺序;特别是它不保证该顺序恒久不变。此类允许使用null元素。 2. HashSet的实现: 对于HashSet而言,它是基于HashMap实现的,HashSet底层使用HashMap来保存所有元素,因此HashSet
2016-08-16 16:14:32
555
转载 【深入理解java集合系列】LinkedHashMap实现原理
1. LinkedHashMap概述: LinkedHashMap是Map接口的哈希表和链接列表实现,具有可预知的迭代顺序。此实现提供所有可选的映射操作,并允许使用null值和null键。此类不保证映射的顺序,特别是它不保证该顺序恒久不变。 LinkedHashMap实现与HashMap的不同之处在于,后者维护着一个运行于所有条目的双重链接列表。此链接列表定义了迭代顺序,该迭代
2016-08-16 16:09:08
513
转载 【深入理解java集合系列】HashMap实现原理
1. HashMap概述: HashMap是基于哈希表的Map接口的非同步实现。此实现提供所有可选的映射操作,并允许使用null值和null键。此类不保证映射的顺序,特别是它不保证该顺序恒久不变。 2. HashMap的数据结构: 在java编程语言中,最基本的结构就是两种,一个是数组,另外一个是模拟指针(引用),所有的数据结构都可以用这两个基本
2016-08-16 09:39:37
492
转载 【深入理解java集合系列】ArrayList实现原理
1. ArrayList概述: ArrayList是List接口的可变数组的实现。实现了所有可选列表操作,并允许包括 null 在内的所有元素。除了实现 List 接口外,此类还提供一些方法来操作内部用来存储列表的数组的大小。 每个ArrayList实例都有一个容量,该容量是指用来存储列表元素的数组的大小。它总是至少等于列表的大小。随着向ArrayList中不断添加元素,其容量
2016-08-15 22:57:56
3528
原创 java中 length length() size() 区别
1 java中的length属性是针对数组说的,比如说你声明了一个数组,想知道这个数组的长度则用到了length这个属性.2 java中的length()方法是针对字符串String说的,如果想看这个字符串的长度则用到length()这个方法.3.java中的size()方法是针对泛型集合说的,如果想看这个泛型有多少个元素,就调用此方法来查看!
2016-08-15 16:51:02
558
原创 【深入理解java集合系列】List,Set,Map用法以及区别
Q1: List,Set,Map是否都继承自Collection接口? 答:List,Set是,Map不是。 Collection是最基本的集合接口,一个Collection代表一组Object,即Collection的元素。一些Collection允许相同的元素而另一些不行。一些能排序而另一些不行。Java JDK不能提供直接继承自Collection的类,Java JDK提供的类都是继
2016-08-15 16:40:13
564
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人