自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(82)
  • 资源 (1)
  • 收藏
  • 关注

原创 OpenCV2.x学习笔记一(图像噪声化与颜色缩减)

噪声对人的影响噪声可以理解为“ 妨碍人们感觉器官对所接收的信源信息理解的因素”。而图像中各种妨碍人们对其信息接受的因素即可称为图像噪声 。噪声在理论上可以定义为“不可预测,只能用概率统计方法来认识的随机误差”。因此将图像噪声看成是多维随机过程是合适的,因而描述噪声的方法完全可以借用随机过程的描述,即用其概率分布函数和概率密度分布函数。

2017-07-20 19:31:03 525

原创 Linux下编程日记--目录/文件操作及返回命令结果

说明:本代码的作用是: 1.获取指定目录前缀下的当前工作目录所有目录; 2.遍历获取的所有目录,获得目录下的指定后缀名的所有文件名; 3.以dir1/file1.abc, dir1/file2.abc, dir2/fff.abc, dir2/fff.abc…为例, 以目录为单位两两取出调用可执行程度compare进行比对, 并将执行结果使用popen返回; 4.将结果保存到指定文件中去#in

2017-03-31 19:38:37 708

原创 单播、多播(组播)和广播的区别

单播、多播(组播)和广播的区别?单播:网络节点之间的通信就好像是人们之间的对话一样。如果一个人对另外一个人说话,那么用网络技术的术语来描述就是“单播”,此时信息的接收和传递只在两个节点之间进行。单播在网络中得到了广泛的应用,网络上绝大部分的数据都是以单播的形式传输的,只是一般网络用户不知道而已。例如,你在收发电子邮件、浏览网页时,必须与邮件服务器、Web服务器建立连接,此时使用的就是单播数据传输方式

2017-03-05 10:24:37 4988

原创 struts2 ActionFoward工作流程

struts2 ActionFoward工作流程:struts提供了ActionForward和ActionMapping两个类来控制页面转发。ActionFoward在使用struts框架开发web应用程序时,Action在完成用户逻辑处理后,需要把处理结果展示给用户,这个时候就需要程序控制页面的转发,在struts中使用ActionForward对象控制程序转向。ActonForward对象是一

2017-03-05 10:22:31 676

原创 redis使用说明

1.由于TinyXml是一个非校验的解析器,因此当解析一个文件时,很可能文件并不包含我们预期的某个节点,在这种情况下,TinyXml将返回空指针。因此,必须要对返回值进行检查,否则将很容易出现内存访问的错误。2.将编码结点的NODE_ID、redis服务器的IP和密码、redis客户端的路径分别写入对应的.ini文件,以便之后使用bash shell读取以上shell变量值。3.hiredis是re

2017-03-05 10:21:48 498

原创 linux下常用命令与常用服务器搭建

ubuntu14.04LTS系统下当通过图形界面无法配置合适的屏幕分辨率时,怎么设置系统分辨率?使用xrandr命令可以查看当前系统已识别的系统分辨率:$xrandr执行结果:Screen 0: minimum 320 x 200, current 1024 x 768, maximum 32767 x 32767VGA1 connected primary 1024x768+0+0 (nor

2017-03-05 10:19:58 556

原创 JavaWeb调试技巧与配置文件加载顺序

1.怎么查看控件调用的action?使用浏览器的调试功能-》审查元素-》定位可能调用action的函数定位到处理函数,通过当前控件元素所在jsp或者htm页面标签可以得知当前页面事件处理函数是放在哪个js文件中,找到对应的js文件,阅读它里面的js代码,得到action的名称.action或.do得到action的名称,到java工程中search file,会出现许多相关的,一般会在配置文中

2017-03-05 10:05:06 2670

原创 书法要点之一

字中有长竖,且没有点、撇时,横的间距要相等竖笔不在一个字的正中时,必需用垂露写法,在正中时可用悬针或垂露,没有把握时尽量用垂露写法“口”中没有东西时,下面的一横要托着上面的横竖“木”在左边时可以提勾可以不提勾,放在下面时必须提勾点下方有一竖笔时,必须让点的重心压在竖之上,比如“主”当一个字中存在多个竖(横)笔时,间距一定要相等,比如“州”(且)当一个中出现多个点,要注意变化上收下展,如

2017-03-05 10:03:04 498

原创 centos离线安装mysql问题记录

使用mysql5.6离线二进制安装包安装在成功执行./scripts/mysql_install_db --user=mysql --basedir=/opt/mysql --datadir=/opt/mysql/data --socket=/tmp/mysql.sock之后, 如果./bin/mysql_secure_installation提示总提示.sock找不到的问题时,需要尝试如下过程:1

2017-03-05 10:00:46 550

原创 Linux Shell编程

简介Shell 是一个用C语言编写的程序,它是用户使用Linux的桥梁。Shell既是一种命令语言,又是一种程序设计语言。Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。Bourne Again Shell,由于易用和免费,Bash在日常工作中被广泛使用。同时,Bash也是大多数Linux系统默认的Shell。详解1.shell变量变量名和等号之间

2017-02-09 09:03:52 6622 1

原创 Ubuntu下好用的markdown编辑器

简介Typora 是一款 Markdown 编辑器,拥有 Windows、macOS、Linux 客户端,可以算作一款 Windows 下难得的好看、优美的客户端。下载地址https://typora.io/#linux安装方式如下:# optional, but recommendedsudo apt-key adv --keyserver keyserver.ubuntu.com --recv-

2017-01-31 21:00:40 10108

原创 面试题录

1.class A{}; sizeof(A)为什么值为1 这就是实例化的原因(空类同样可以被实例化),每个实例在内存中都有一个独一无二的地址,为了达到这个目的,编译器往往会给一个空类隐含的加一个字节,这样空类在实例化后在内存得到了独一无二的地址,所以空类所占的内存大小是1个字节。 2.overload和overwrite区别 Overload(重载):在C++程序中,可以将语义、功能相似的几个

2016-10-09 15:54:57 629

原创 C/C++文件IO

#include <vector>#include <algorithm>#include <iostream>#include "test.h"using namespace std;typedef struct Sys_Info{ unsigned int vesion; unsigned int sub_version; char info[20];

2016-10-06 17:44:21 1142

原创 面试笔记

1.DNS解析用到哪些协议,为什么? DNS在进行区域传输的时候使用TCP协议,其它时候则使用UDP协议,UDP报文的最大长度为512字节,而TCP则允许报文长度超过512字节。当DNS查询超过512字节时,协议的TC标志出现删除标志,这时则使用TCP发送。通常传统的UDP报文一般不会大于512字节。 区域传送时使用TCP,主要有一下两点考虑: 1.辅域名服务器会定时(一般时3小时)向主域名

2016-09-25 22:40:15 899

原创 138. Copy List with Random Pointer

A linked list is given such that each node contains an additional random pointer which could point to any node in the list or null.Return a deep copy of the list.Subscribe to see which companies asked

2016-09-12 22:53:40 308

原创 动态规划——LCS

动态规划分为四个步骤: 1.判断问题是否具有最优子结构 这里以LCS为例,X={x1,x2,…,xi};Y={y1,y2,…,yj}。最长公共子序列Z={z1,z2,…,zk}; ①如果xi=yj,那么zk=xi=yj,且Zk-1是序列Xi-1和Yj-1的LCS; ②如果xi≠yj,那么zk≠xi;且Zk是序列Xi-1和Yj的LCS; ③如果xi≠yj,那么zk≠yj;且Zk是序列Xi和Y

2016-09-06 21:12:35 503

原创 C++并发编程(C++11)

C++11有了std::thread 以后,可以在语言层面编写多线程程序了,直接的好处就是多线程程序的可移植性得到了很大的提高。C++11 新标准中引入了四个头文件来支持多线程编程,他们分别是<atomic>,<thread>,<mutex>,<condition_variable>和<future>。<atomic>:该头文主要声明了两个类, std::atomic 和 std::atomic_flag,.

2016-08-31 14:57:10 20622 9

原创 求矩阵某位置相邻元素的中间值

描述: 给出一个矩阵,如: 1 2 3 4 5 5 4 3 2 1 3 2 1 4 5 给出一个下标(1,1),其相邻元素有1 2 3 5 3 3 2 1,中间值为(2+3) / 2 = 2 输入: 第一行输入矩阵的行列大小,为m, n 紧接着输入矩阵的所有元素的值 然后输入要求位置的坐标i, j 输出: 中间值 输入示例: 3 5 1 2 3 4 5 5 4 3 2

2016-08-25 16:19:43 1090

原创 mybatis入门实例

简介MyBatis 是支持普通 SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis 消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis 使用简单的 XML或注解用于配置和原始映射,将接口和 Java 的POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。每个MyBatis应用程序主要都是使用SqlSessionF

2016-08-23 16:43:49 459

原创 Hibernate实例

Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的orm框架,hibernate可以自动生成SQL语句,自动执行,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中

2016-08-22 23:57:08 2899

原创 struts2.x入门实例

Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互。Struts 2是Struts的下一代产品,是在 struts 1和WebWork的技术基础上进行了合并的全新的Struts 2框架。其全新的Struts 2的体系结构与Struts 1的体系结构差别巨大。Strut

2016-08-21 15:46:55 1235

原创 Struts1.x使用入门

Struts1框架是apache公司的开源子项目,是基于mvc逻辑分层的web层框架实现。是出现最早的web层框架,应用最广发。Struts1框架重点关注的是控制层,对于视图层只是提供了大量的标签;对于model层的影响微乎其微。 本文也是本人初学struts情况下写的,如有不足之外还希望能给我一点指点。好了,下面就直接说使用实例吧。 1 Java的基本运行环境,就不多说了,我这里用的IDE是E

2016-08-19 19:38:56 3636 1

原创 八皇后

#include <iostream>#include <cmath>using namespace std;#define N 8bool ground[N + 1][N + 1] = {0};bool is_legal(bool ground[N + 1][N + 1], const int &i, const int &j){ for (int m = 1; m <= i - 1;

2016-08-18 15:53:59 331

原创 Linux下grep、sed、awk、tcpdump、strace用法实例

1. grep grep 是全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。 用法: grep [OPTIONS] PATTERN [FILE...] grep [OPTIONS] [-e PATTERN | -f FILE] [FILE...]首先使用ls命令和输出重定向生成两个用来测试grep命令的文本r

2016-08-16 12:14:35 2724 1

原创 383. Ransom Note

class Solution {public: bool canConstruct(string ransomNote, string magazine) { bool ret = true; int pos = -1; for(auto it : ransomNote) { pos = magazine.find(i

2016-08-14 12:19:11 401

原创 设计模式(C++实例)

感言 本文很长,但文中近乎有十之八九只能算是我在拜读各位大神大牛们分享的作品的笔记,这里只是我第一遍学习,我知道过了几天我肯定又会把看过的东西给忘记,所以就索性把各位大牛们的东西整理到了一起,方便以后的学习。1.(Strategy策略模式) 一个策略放到一个锦囊里。当用的时候,找到这个锦囊,从锦囊里拿出策略来使用。 注意:锦囊只是简单的装载和调用策略,锦囊里没有逻辑。策略会有更大的自主权,运行

2016-08-13 15:40:38 13420

原创 几种常见设计模式(Java)

几种设计模式(总共有二十多种,其他的以后慢慢了解) (1) 创建型:工厂模式、抽象工厂模式、单例模式 (2) 结构型:适配器模式、装饰器模式、代理模式 (3) 行为型:策略模式、模板方法模式、观察者模式 代码示例 1)工厂模式 普通工厂是工厂模式的一种,就是建立一个工厂类,对实现了同一接口的一些类进行实例的创建public interface Sender { public vo

2016-08-11 21:35:59 1268

原创 伪函数使用实例

函数指针有缺点,最重要的是它无法持有自己的状态(局部状态),也无法达到组件技术中的可适配性(也就是无法再将来某些修饰徐条件加上,以达到改变其状态)。 因此,STL算法的特殊版本所接受的所谓的”条件“或”策略“或”一整组操作“都是以仿函数呈现的。 所谓仿函数(functor)就是使用起来像函数一样的东西。如果对某个class进行operator()重载,它就是一个仿函数。 代码示例:#inclu

2016-08-09 10:41:04 1064

原创 最大公约数及最小公倍数

基于辗转相除法的最大公约数和最小公倍数的算法实现#include<iostream>#include <string>using namespace std;int gcd(int a, int b){ if(a < b) swap(a, b); while(b) { int tmp = a % b; a = b;

2016-08-06 23:36:15 436

原创 常用八个排序算法性能总结

常用八个排序算法性能比较

2016-08-04 16:36:10 339

原创 常用算法——模式匹配(KMP)

在一个字符串中查找一个子字符串有很多方法,最简单容易想到的算法便穷举,但这样的情况下算法复杂度为O(m * n)。 而KMP是一种最常见的改进算法,它可以在匹配过程中失配的情况下,有效地多往后面跳几个字符,加快匹配速度。 KMP算法中有个数组,叫做前缀数组,也有的叫next数组,每一个子串有一个固定的next数组,它记录着字符串匹配过程中失配情况下可以向前多跳几个字符,当然它描述的也是子串的对称

2016-08-04 16:04:27 650

原创 常用排序算法——基数排序(桶排序)

本文以最大为3位数字为例,并可以对负数进行排序#include<iostream>using namespace std;//获取第d+1位的数字//int get_digit(int x,int d) { int a[] = {1, 10, 100}; return (abs(x) / a[d]) % 10; } void lsd_sort(int ar

2016-07-29 14:02:52 448

原创 SQL编程——MySQL数据库基本操作

实验平台:mysql5.7, 案例:大学课本中数据库课程学习时用的学生-课程-成绩 实际的数据库设计可能和课本中有出入 E-R如下: 代码如下:#1. 数据库创建DROP DATABASE IF EXISTS scoredb;CREATE DATABASE scoredb;#2. 创建表#1) 创建新表USE scoredb;CREATE TABLE student(

2016-07-27 14:33:39 4161

原创 GOF 23种设计模式 怎么分类

1.创建型模式 前面讲过,社会化的分工越来越细,自然在软件设计方面也是如此,因此对象的创建和对象的使用分开也就成为了必然趋势。因为对象的创建会消耗掉系统的很多资源,所以单独对对象的创建进行研究,从而能够高效地创建对象就是创建型模式要探讨的问题。这里有6个具体的创建型模式可供研究,它们分别是: 简单工厂模式(Simple Factory); 工厂方法模式(Factory Method);

2016-07-26 21:44:46 594

原创 常用排序算法——堆排序

#include <iostream>using namespace std;template<typename T>void heapify(T *arry,int size,int element, bool dec){ int lchild=element*2+1,rchild=lchild+1;//左右子树 if(dec) { while(rchild<

2016-07-26 17:16:02 283

原创 常用排序算法——希尔排序

#include <iostream>using namespace std;template <class T>void shell_sort(T *a, int n) { int j, gap; for (gap = n / 2; gap > 0; gap /= 2) { //从数组第gap个元素开始 for (j =

2016-07-26 17:15:09 314

原创 常用排序算法——归并排序

#include <iostream>using namespace std;template<class T>void merge(T *arr, int p, int q, int r){ int i, k; int s1 = p, e1 = q, s2 = q + 1, e2 = r; T *temp = new T[r - p + 1]; k = 0;

2016-07-26 15:01:37 305

原创 常用排序算法——插入排序

#include <iostream>using namespace std;template<class T>void insert_sort(T *arr, int len){ T tmp; int curPos; for(int i = 1; i < len; ++ i) { tmp = arr[i]; curPos = i

2016-07-26 15:00:53 258

原创 常用排序算法——选择排序

#include <iostream>using namespace std;template<class T>void select_sort(T *arr, int len){ T tmp; int curPos; for(int i = 0; i < len - 1; ++ i) { tmp = arr[i]; curPos

2016-07-26 14:59:49 261

原创 常用排序算法——鸡尾酒排序(改进的冒泡排序)

#include <iostream>using namespace std;template<class T>void bubble_sort(T *arr, int len){ T tmp; int tail = len - 1; for(int i = 0; i < tail; ) { //小的排到前面 for(int j

2016-07-26 14:05:01 987

重构_改善既有代码的设计(电子书)

重构_改善既有代码的设计(电子书),pdf版,高清。

2014-07-18

空空如也

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

TA关注的人

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