自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 word中设置论文参考文献完美对齐方法

1. 把准备好的参考文献粘贴到记事本中,在标号和正文之间添加一个制表符/tab键如下图所示:2.把第一步处理好的参考文献粘贴到word中进行如下设置:        开始=》段落=》常规=》对齐方式:两端对齐;                                     缩进=》特殊格式:悬挂缩进为2个字符3.调整后的参考文件就完美对齐了,如下图所示

2017-04-16 10:32:01 202913 30

原创 vs2010 问题 >LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏

>LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏问题说明:当安装VS2013之后,原来的.NET 4.0会被替换为.NET 4.5。再安装VS2010时,不会恢复.NET 4.0。l 当VS2013安装后,VS2010的cvtres.exe就无法使用了。如果你的PATH环境变量中VS2010的工具路径第一个出现,而且链接器需要将.r

2016-09-30 14:21:31 1244

转载 端口复用 -- socket编程:SO_REUSEADDR例解

网友vmstat多次提出了这个问题:SO_REUSEADDR有什么用处和怎么使用。而且很多网友在编写网络程序时也会遇到这个问题。所以特意写了这么一篇文章,希望能够解答一些人的疑难。其实这个问题在Richard Stevens的《Unix网络编程指南》卷一里有很详细的解答(中文版P166-168页)。这里我只是写几个基本的例子来验证这个问题。首先声明一个问题:当两个socket的

2016-08-05 16:47:25 1197

原创 在VS2013中配置OpenCL开发 环境

本次OpenCL 环境配置采用N卡的OpenCL API配置步骤:1、安装OpenCL APIN卡的OpenCL API包含在CUDA中,到N卡的官方网站https://developer.nvidia.com/cuda-toolkit下载NVIDIA OpenCL SDK2、在VS2013中配置OpenCL环境    新建一个OpenCL新项目工程这是比不可少的,网上有很

2016-04-11 20:53:46 5230

转载 计数排序、桶排序和基数排序

转载自:http://blog.csdn.net/quietwave/article/details/8008572计数排序当输入的元素是 n 个 0 到 k 之间的整数时,它的运行时间是 Θ(n + k)。计数排序不是比较排序,排序的速度快于任何比较排序算法。由于用来计数的数组C的长度取决于待排序数组中数据的范围(等于待排序数组的最大值与最小值的差加上1),这使得计数排序

2016-03-13 10:49:44 667

转载 C++ AMP异构并行编程解析

原文发表于《程序员》杂志2012年第4期,略有改动。文 / 陈冠诚微软在2012年2月份的GoingNative大会上正式对外发布了C++ AMP(Accelerated Massive Parallelism)开放规范。C++ AMP是微软于11年6月推出的一个异构并行编程框架,从Visual Studio 11开发者预览版起,微软正式提供了C++AMP的支持。C++ AMP的目

2016-01-19 15:43:29 1126

转载 OpenMP和MPI并行模式的区别?

1.OpenMP  OpenMP是一种用于共享内存并行系统的多线程程序设计的库(Compiler Directive),特别适合于多核CPU上的并行程序开发设计。它支持的语言包括:C语言、C++、Fortran;不过,用以上这些语言进行程序开发时,并非需要特别关注的地方,因为现如今的大多数编译器已经支持了OpenMP,例如:Sun Compiler,GNU Compiler、Intel Com

2016-01-19 13:50:50 12641 3

转载 浅谈多节点CPU+GPU协同计算负载均衡性设计

近年来,基于CPU+GPU的混合异构计算系统开始逐渐成为国内外高性能计算领域的热点研究方向。在实际应用中,许多基于 CPU+GPU 的混合异构计算机系统表现出了良好的性能。但是,由于各种历史和现实原因的制约,异构计算仍然面临着诸多方面的问题,其中最突出的问题是程序开发困难,尤其是扩展到集群规模级别时这个问题更为突出。主要表现在扩展性、负载均衡、自适应性、通信、内存等方面。一、    CPU

2016-01-19 10:32:23 2464

转载 胜者树与败者树

概念介绍    胜者树和败者树都是完全二叉树,是树形选择排序的一种变型。每个叶子结点相当于一个选手,每个中间结点相当于一场比赛,每一层相当于一轮比赛。    不同的是,胜者树的中间结点记录的是胜者的标号;而败者树的中间结点记录的败者的标号。胜者树与败者树可以在log(n)的时间内找到最值。任何一个叶子结点的值改变后,利用中间结点的信息,还是能够快速地找到最值。在k路归并排序中经常用

2016-01-06 16:04:28 1063

转载 lib_mysqludf_json 把mysql关系型数据转换成json格式的UDF工具

介绍mysql里的数据格式转成json格式,通常使用php的json扩展实现。如果使用udf,会有更快的速度。lib_mysqludf_json提供下面功能:1.可变长度的参数列表允许直接映射2.自动转义适应json语法3.NULL处理字符串null映射到javascript null,数字null映射到java NaN4.表达式自动映射成j

2015-12-30 18:56:16 1626

转载 浅析MySQL中exists与in的使用

exists对外表用loop逐条查询,每次查询都会查看exists的条件语句,当 exists里的条件语句能够返回记录行时(无论记录行是的多少,只要能返回),条件就为真,返回当前loop到的这条记录,反之如果exists里的条 件语句不能返回记录行,则当前loop到的这条记录被丢弃,exists的条件就像一个bool条件,当能返回结果集则为true,不能返回结果集则为 false如下:

2015-12-23 09:24:34 313

原创 C++ 18备忘录模式

备忘录模式(Memento):在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。备忘录模式结构图:Originator类,负责闯将一个备忘录Memento,用以记录当前时刻它的内部状态,并可使用备忘录回复内部状态。MeMento类,负责存储Originator对象的内部状态,并可防止Originator以外

2015-12-14 10:30:38 414

原创 C++ 策略模式

策略模式(strategy):它定义了算法家族,分别封装起来,让他们之间可以相互替换,此模式让算法的变化,不会影响到使用算法的客户。策略模式的结构图:Strategy:策略类,定义所有支持的算法的公共接口。ConcreteStrategy:具体策略类,封装了具体的算法或行为,继承于Strategy。Context:上线文类,用一个Strategy来配置,维护一个对Strat

2015-12-13 21:44:14 482

原创 C++ 10模板方法模式

模板方法模式,首先定义一个操作中的算法的骨架,而将一些算法细节延迟到子类中实现。模板方法使得子类不改变一个算法的结构同时又可重定义该算法的某些特定步骤。模板方法结构图:AbstractClass类,实现了一个模板方法,定义了算法的骨架(TemplateMethod函数中),primitiveOperation方法是虚函数,子类中要重新实现算法中一个步骤的细节。ConcreteC

2015-12-10 15:22:30 452

原创 C++ 14观察者模式

观察者模式又叫发布-订阅(Publish/Subscribe)模式。 观察者模式的定义:观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主体对象在状态发生改变时,会通知所有观察者对象,使它们能够自动更新自己。观察者模式结构图如下:Subject类,它把所有对观察者对象的引用保存在一个列表(list或vector)里,每个主题都可以有

2015-12-10 11:28:22 436 1

原创 C++ 08工厂方法模式

工厂方法模式(Factory Method),定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。下面还是举例怎样设计一个计算器。结构图如下:请自觉的比较 简单工厂模式和工厂方法模式的异同。直接上代码:#include#includeusing namespace std;//抽象运算类class Operat

2015-11-20 20:23:42 402

原创 C++ 01简单工厂模式

下文是关于一个计算器类的实现,设计计算器采用了简单工厂模式,定义一个工厂类,通过工厂类中的createOperate函数做逻辑判断,来调用具体的计算器类。简单工厂模式结构图如下:代码实现如下:#include#includeusing namespace std;//抽象运算类class Operation{private: double numberA = 0

2015-11-20 20:02:32 436

原创 C++ 09原型模式

原型模式(Prototype)-------用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象。                                                                         原型模式的结构图Prototype原型类,声明一个克隆自身的接口ConcretePrototype具体原型类,实现一个克隆自

2015-11-19 16:19:11 653

原创 C++ 06装饰模式

装饰模式(Decorator):动态地给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更为灵活。装饰模式的UML图: Component是定义一个对象接口,可以给这些对象动态添加职责。ConcreteComponent是定义了一个具体的对象,也可以给这个对象添加一些职责。Decorator是装饰的抽象类,继承了Component,从外来类扩展Component类的功

2015-11-16 16:54:54 556

原创 opencv中图像的深度和通道

矩阵数据类型:–      CV_(S|U|F)CS = 符号整型  U = 无符号整型  F = 浮点型E.g.:CV_8UC1 是指一个8位无符号整型单通道矩阵,CV_32FC2是指一个32位浮点型双通道矩阵CV_8UC3是指一个三通道且每个通道都是8位无符号整形,彩色图像一般用三通道代表RGBCV_8UC1           

2015-11-12 10:04:30 2336

转载 C++中虚函数工作原理和(虚)继承类的内存占用大小计算

转载出处,原文地址:http://blog.csdn.net/hackbuteer1/article/details/7883531一、虚函数的工作原理      虚函数的实现要求对象携带额外的信息,这些信息用于在运行时确定该对象应该调用哪一个虚函数。典型情况下,这一信息具有一种被称为 vptr(virtual table pointer,虚函数表指针)的指针的形式。vptr 指向一个被称

2015-11-08 15:49:37 439

原创 C++中有符号类型(int)和无符号类型(unsigned int)混合算术运算的类型转换会出现的问题

当无符号数(int)和有符号数(unsignedint)进行算数运算时,有符号数(int)会先转换为无符号数(unsignedint),在进行相应的算数运算。 先看一个例子。例一: unsigned int  a= 20;    int b = -80;    cout 如果int类型是32位的情况下,输出结果为:4294967236解析:运算过程先把-80的补

2015-11-07 19:38:18 5981

原创 C++中内存泄露检测

内存泄露的关键就是记录分配的内存和释放内存的操作,看看能不能匹配。跟踪每一块内存的声明周期,例如:每当申请一块内存后,把指向它的指针加入到List中,当释放时,再把对应的指针从List中删除,到程序最后检查List就可以知道有没有内存泄露了。Window平台下的Visual Studio调试器和C运行时(CRT)就是用这个原理来检测内存泄露。在VS中使用时,需加上#define _CRTD

2015-10-30 14:17:38 906

原创 error LNK2038: 检测到“RuntimeLibrary”的不匹配项的解决办法

首先贴一段错误信息如下:1>IlmImfd.lib(ImfTiledRgbaFile.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项:  值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(COLOR2Gray.obj 中)1>IlmImfd.lib(IexBaseExc.obj) : error LNK2038:

2015-10-16 16:23:08 30653 3

原创 C++中顶层const和底层const

顶层const表示指针或对象本身是一个常量指针底层const表示指针或引用指向的对象是一个常量int i=0;int *const p1=&i;//p1本身是一个常量指针,不能再把p1指向其他对象,这是一个顶层constconst int ci=42;// 不能改变ci的 值,ci是一个顶层constconst int*p2=&ci;//不能改变*p2的值,但可以把p2再指向其

2015-10-15 19:01:06 571

原创 C++中四种类型转换

C++中四种类型转换有:static_cast、const_cast、dynamic_cast和reinterpret_cast一、static_caststatic_cast对任何具有明确定义的类型转换,只要不包含底层const,都可以使用static_cast。 旧式的强制类型转换早期的C++版本中,显示的进行强制类型转换包含两种形式:1) type(expr) ;//

2015-10-15 18:32:51 558

原创 C++中深入理解dynamic_cast

dynamic_cast运算符的主要用途:将基类的指针或引用安全地转换成派生类的指针或引用,并用派生类的指针或引用调用非虚函数。如果是基类指针或引用调用的是虚函数无需转换就能在运行时调用派生类的虚函数。前提条件:当我们将dynamic_cast用于某种类型的指针或引用时,只有该类型含有虚函数时,才能进行这种转换。否则,编译器会报错。dynamic_cast运算符的调用形式如下所示:dy

2015-10-15 10:14:02 15770 2

转载 看unix高级编程(第三版)时遇到apue.h找不到的问题

文章转自:http://www.01happy.com/unix-advanced-programming-apue/   编译代码文件提示fatal error: apue.h: No such file or directory。翻看书的附录B,可以看到apue.h的资料,原来作者是为了减少书中示例代码的长度,将很多包含头文件的代码封装到了apue.h这个文件。下载

2015-09-14 11:33:47 3553 1

原创 Exception in thread "main" com.mysql.jdbc.NotUpdatable

Exception in thread "main" com.mysql.jdbc.NotUpdatable: Result Set not updatable (referenced tablehas no primary keys).This result set must come from a statement that was created with a result set t

2015-09-11 08:31:00 1620

转载 comparator接口与Comparable接口的区别

1.Comparator 和 Comparable 相同的地方 他们都是java的一个接口, 并且是用来对自定义的class比较大小的, 什么是自定义class:如 public class Person{ String name; int age }. 当我们有这么一个personList,里面包含了person1, person2, persion3....., 我们用

2015-08-28 20:42:06 429

原创 C++带const、static和#define关键字的变量定义的区别

一、const 1.变量定义中   (1)const int a=10;   说明:定义的int型变量a不能被修改,只能被使用。带const关键字的变量可以定义为全局变量,但此时定义的全局变量链接性为内部的    (2)#a.h中定义: const int b=10;   在头文件中定义的带const关键字的变量,此头文件可被多个不同的源文件所引用,同时不会出现问题,在编译

2015-07-04 21:35:12 2614 1

原创 C++ STL关联容器 set和map学习笔记

C++ STL关联容器 set和map学习笔记STL提供了4种关联容器:set、multiset、map和multimap。前两种在头文件#include,后两种在头文件#include中定义的。 一、set (集合)    Set是最简单的关联容器类,其值类型与键相同,键是唯一的,这意味着set中不会有多个相同的键。就像数学学过的集合一样,一个集合对象中不允许有两个相同的值一样。

2015-07-04 19:18:08 1686

原创 STL序列容器vector、deque、list和array学习笔记

C++  STL序列容器vector、deque、list和array学习笔记 一、vector(矢量)在头文件#include中定义的vector是数组的一种类表示,它提供了自动内存管理功能,可以动态地改变vector对象的长度,并随着元素的添加和删除而增大和缩小。他提供了对元素的随机访问。在尾部添加和删除元素的时间是固定的,但在头部或者中间插入和删除元素的复杂度为线性时间。

2015-07-04 19:07:33 950

原创 VC++中的WinMain()函数介绍

WinMain()函数 WinMain()函数等价于控制台程序中的main()函数。该函数是执行开始的地方,也是为程序其余部分执行基本初始化工作的地方。为了允许 Windows 传递数据,WinMain()函数有 4 个形参和一个int类型的返回值,其原型如下: int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevIns

2015-06-28 17:17:22 3041

原创 VS2013对代码行进行多行注释快捷键

多行注释:Ctrl+K+C(先按ctrl,再按K,最后按C)取消多行注释:Ctrl+K+U(先按ctrl,再按K,最后按U)

2015-06-28 15:24:31 5319

原创 VC++中安装OpenGL的配置过程及注意事项

一、下载并安装glut库    opengl的glut库 GLUT不是OpenGL所必须的,但它会给学习带来一定的方便,推荐安装。     Windows环境下的GLUT下载地址:(大小约为150k)     http://www.opengl.org/resources/libraries/glut/glutdlls37beta.zip     Windows环境下安装GLUT的

2015-05-28 16:11:58 1624

原创 修改matlab GUI中fig和m文件名修改流程及注意事项

一、修改fig和m文件名二、Figure1属性:进入figure1中的property inspector中Name属性改为你要修改的文件名。三、修改m文件中的内容   注:红色字体test_main_window是要修改的内容,改为你要修改的文件名。   1)修改varargin前面的文件名,把test_main_window改为你要修改的文件名。function varar

2015-05-27 18:49:42 13576 11

空空如也

空空如也

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

TA关注的人

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