自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(43)
  • 资源 (2)
  • 收藏
  • 关注

原创 多线程与多进程如何取舍

多进程的和多线程的优缺点多进程多线程稳定性每个进程有独立的进程空间,进程的崩溃会被隔离,不会引发连锁反应。所有线程共享一个进程空间,某一个线程的崩溃会扩展到整个进程。适用性不但适用于多核,也方便迁移到分布式的计算环境。适用单机多核的场景。

2013-03-26 13:19:04 828

原创 为什么要用散列表(哈希表,hashtable)

Hash表不是直接直接把关键字作为数组下标,而是根据关键字计算出下标。-------算法导论       数组是一种支持直接访问的数据结构,使用确定的位置来存储和检索数据,十分高效。对数组操作时,隐含的一个动作是通过 特定的规律来确定下标。例如一张图片像素所组成的二维数组中,通过行数a和列数b可以得到二维下标(a-1,b-1)。       大家对于数列都很熟悉,等比数列,等差数列等都是常

2013-01-28 14:23:33 5384

转载 矩阵的奇异值分解(SVD)及其应用

矩阵的奇异值分解(SVD)及其应用版权声明:    本文由LeftNotEasy发布于http://leftnoteasy.cnblogs.com,本文可以被全部的转载或者部分使用,但请注明出处,如果有问题,请联系[email protected]前言:    上一次写了关于PCA与LDA的文章,PCA的实现一般有两种,一种是用特征值分解去实现的,一种是用奇异值分解去实现的。在

2013-01-24 14:31:50 3949

原创 CMake

使用cmake编译成debug版本 SET( CMAKE_BUILD_TYPE Debug )  #ITK helloworld示例解析 #定义工程名,并设置相关变量,例如“HelloWorld_BINARY_DIR”等#所有工程中还有一个名为“PROJECT_BINARY_DIR”的变量与上面的变量等价#在vs中作为工程名,在linux下可以木有PROJE

2013-01-24 14:30:53 1125

转载 单例模式的实现,及线程安全问题

1.       单例模式的实现class CSingleton{//其他成员public:static CSingleton* GetInstance(){      if (m_pInstance == NULL )  //判断是否第一次调用       m_pInstance = new CSingleton();       return m_pInst

2013-01-24 14:28:18 780

转载 单例模式跟全局变量相比的好处

全局变量是最容易引起初学者兴趣的了,在整个项目中,任何一个函数,每一行代码都可以轻易访问所有的全局变量,并且可以不用付出额外的代价,全局变量看起来就像是为懒惰的程序员设计的一条绿色通道,如果不想看到函数因为要与其他模块通信而动辄很多参数,或者像给程序始末的关键信息寻找一个最合适的存储位置,那么全局变量就是很好的解决方案但是在项目中,全局变量肯定不少,这个时候,使用起来就会比较混乱,这个时候有一

2013-01-24 14:26:00 8170

原创 Static,Const的作用

PS:静态存储区的数据会被初始化为零。其中包括全局变量和静态变量(静态全局和静态局部)。一、  Static的作用?static 的两大作用:  1. 控制存储方式:static被引入以告知编译器,将变量存储在程序的静态存储区而非栈上空间。引出原因:函数内部定义的变量,在程序执行到它的定义处时,编译器为它在栈上分配空间,大家知道,函数在栈上分配的空间在此函数执行结束时会

2013-01-24 14:22:43 593

转载 LIB文件和DLL文件有什么不同

LIB文件和DLL文件有什么不同(1)lib是编译时需要的,dll是运行时需要的。如果要完成源代码的编译,有lib就够了。如果也使动态连接的程序运行起来,有dll就够了。在开发和调试阶段,当然最好都有。(2)一般的动态库程序有lib文件和dll文件。lib文件是必须在编译期就连接到应用程序中的,而dll文件是运行期才会被调用的。如果有dll文件,那么对应的lib文件一般是一些索引信息,具体

2013-01-24 14:20:43 372

原创 C++的类中,那些函数不能用virtual修饰?

1. C++的类中,那些函数不能用virtual修饰?不能是虚函数的成员函数有:静态成员函数,内联成员函数,构造函数。PS:一般情况下,父类的析构函数需要定义为虚函数。 2. 为什么构造函数不能为虚函数?构造函数调用时,Vtable没有建立,当然不能使用虚函数。构造函数不需要是虚函数,也不允许是虚函数,因为创建一个对象时我们总是要明确指定对象的类。

2013-01-24 14:18:41 5578

转载 指针和引用的区别

指针和引用都是直接作用于地址的类型,区别主要是指针更加灵活,很多时候引用是做不到的。   A、强制类型转换。 比如老式风格的程序传递全局临时变量常常使用void *承载一切类型。   B、允许有“空”状态。指针作为可以有空状态,而引用必须在定义时就初始化。指针可以被赋值,引用不可以。   C、常量引用用于传递不能被修改的大对象,防止参数传递时的拷贝开销,写程序时比常量指针直观。例如vo

2013-01-24 14:17:23 442

转载 线程同步有哪些方法(Windows)

现在流行的进程线程同步互斥的控制机制,其实是由最原始最基本的4种方法实现的:       A. 临界区:通过对多线程的串行化来访问公共资源或一段代码,速度快,适合控制数据访问。 B. 互斥量:为协调共同对一个共享资源的单独访问而设计的。 C. 信号量:为控制一个具有有限数量用户资源而设计。D. 事件:用来通知线程有一些事件已发生,从而启动后继任务的开始。总结:   1. 互斥量与临界区

2013-01-24 14:15:13 1538

原创 Linux和Windows系统线程间的区别

WIN32里同一个进程里各个线程之间是共享数据段的。是与Linux的进程最大的不同。linux的线程也可以成为轻量级进程。linux中,pid_tfork( void);返回值:若成功调用一次则返回两个值,子进程返回0,父进程返回子进程ID;否则,出错返回-1由于在复制时复制了父进程的堆栈段,所以两个进程都停留在fork函数中,等待返回。因为fork函数会返回两次,一次是在父进

2013-01-24 14:14:14 694

原创 sendmessage和postmessage的区别

sendmessage是同步的,需要等待消息被处理完成,获得返回码(DWord类型)后才继续,也就是说sendmessage后会立即得到结果。postmessage是异步的,只负责将消息放到消息队列中,不确定何时及是否处理。       postmessage中不要使用临时变量做参数,因为消息处理时,该变量可能已销毁。

2013-01-24 14:09:58 511

原创 静态成员函数与普通成员函数的区别

区别1:        静态成员函数实际上是一个全局函数,不依赖一个类的对象. 而属于类,不创建对象也可调用。        普通成员函数依赖一个类的对象,也就是它有一个隐藏的调用参数(this)指针,必须指向一个类的对象。区别2:       静态函数只能访问类中的静态成员变量;区别3::       如果类的成员函数想作为回调函数来使用,如创建线程等,一般只能将它定义为

2013-01-24 13:51:41 8154 1

转载 设备I/O之OVERLAPPED

原帖地址:http://www.jdzj.com/data/program/5476.htmOVERLAPPED,顾名思义为重叠,乍一看会很奇怪,重叠谁跟谁重叠似乎在WIN32的Programming中没有这个概念呀要讨论这个问题就要追溯到对设备I/O的访问中  在WIN32中,用户不能象以前那样直接对硬件进行访问,使得这一层对开发者而言是个"黑盒",而是提供了一组对应

2012-02-04 13:45:13 429

转载 [VC/MFC]实现程序运行时隐藏窗口 (多种方法,推荐方法2)

原帖地址:http://hi.baidu.com/yang2h/blog/item/d923b1cf7d662c34f8dc61ad.html因为最近我的不良网页过滤引擎--上帝之手的开发进入实际开发阶段,因此开始了很多方面的系统编程比如说进程隐藏,窗口隐藏等等,因为这是监控类的软件,最好是运行在用户不知情的情况下,所以最好是把窗口隐藏起来,然后通过hotkey来呼唤.在如何实现窗口隐

2012-02-02 09:08:46 1293

原创 在QWizard中对 Next(Finish)按键的控制

在QWizard中,需要对向导结束之后的动作进行控制,于是想定义一下 Finish 按键的clicked() 槽,居然没有找见。我在设计界面的时候使用的是Qt Designer, 生成下一个向导页是自带三个按键(back、next和cancel)的,甚至没有生成自己的QWizardPage子类, —在自己定义的myQWizard中,是没有定义这三个按键的。 —于是去找对应的 "ui_m

2011-12-02 19:11:36 7113 1

原创 QT源码下载地址

Qt的官方ftp:ftp://ftp.trolltech.com/qt/source/

2011-11-28 14:23:10 607

原创 CvMat IplImage QImage 转换

#include  #include QImage trans2QImage(){IplImage* pIPLImgSrc = cvLoadImage("/home/rs/workspace/DCMs/ct.bmp",0);CvMat* pCvMat=cvCreateMat(pIPLImgSrc->height,pIPLImgSrc->width,CV_8UC1);

2011-11-14 17:29:02 908

转载 与临时对象的斗争(上)

作者:唐风出处:http://www.cnblogs.com/liyiwen本文版权归作者和博客园共有,欢迎转载,但请保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。C++ 是一门以效率见长的语言(虽然近来越来越多的人“不齿”谈及效率,我深以为不然,在某一次的程序编写中不对效率锱铢必较并不意味意味着我们就不应该追求更多的更好的做法)。总之吧,

2011-11-07 12:43:00 1260

转载 与临时对象的斗争(下)

作者:唐风出处:http://www.cnblogs.com/liyiwen本文版权归作者和博客园共有,欢迎转载,但请保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。在上篇里,我们看到了 (N)RVO 和右值引用,下面我们来看看表达式模板。Expression Template(表达式模板,ET)如果有“系统地”学习过

2011-11-07 12:42:12 1207

转载 C++的临时变量

它们是被神所遗弃的孩子,没有人见过它们,更没有人知道它们的名字.它们命中注定徘徊于命运边缘高耸的悬崖和幽深的深渊之间,用自己短暂的生命抚平了生与死之间的缝隙.譬如朝露,却与阳光无缘.是该为它们立一座丰碑的时候了,墓铭志上写着:我来了,我走了,我快乐过.  许多人对临时变量的理解仅仅限于: string temp; 其实,从C++的观点来看,这根本就不是临时变量,而是局部变量.

2011-11-07 10:38:49 406

转载 引用作为返回值

引用作为返回值的时候,有一些规则必须遵守。这些规则包括: 不能返回局部变量的引用。这条可以参照Effective   C++[1]的Item   31。主要原因是局部变量会在函数返回后被销毁,因此被返回的引用就成为了“无所指”的引用,程序会进入未知状态。   不能返回函数内部new分配的内存的引用。这条可以参照Effective   C++[1]的Item   31。虽然不存在局部变量

2011-11-02 16:23:57 384

转载 运算符重载

原文地址:http://www.cnblogs.com/wzh206/archive/2010/03/25/1696162.html定义格式返回类型 operator运算符(形式参数表) { 函数体 }参数个数的限定    非成员函数:  单目运算符:参数表中只有一个参数;  双目运算符:参数表中只有两个参数

2011-11-02 11:36:47 370

原创 20110914工作总结

今天学习的东西比较杂:1. 复习了itk2vtk的程序2. 查看itk的文档,确定了可以使用GetPixel()和SetPexil()来完成图像点信息的提取。3. 明确了VTK存在actor2d,与actor的3D相对应,可以用来显示信息,正好是项目需要的功能。

2011-09-14 17:53:13 440

原创 VTK_CREATE

在VTK的例程中存在众多的VTK_CREATE(),可以明显看出这是个宏定义,作用也明了,google了下没要找到,便没有深究。偶尔看到其定义如下,mark一下吧:#define VTK_CREATE(type, name) vtkSmartPointer name =vtkSmartPointer::New()见:http://www.vtk.org/pipermail/vt

2011-09-14 11:13:50 696

原创 使用Qt设计师(Qt Designer)快速设计窗体

使用Qt设计师(Qt Designer)设计窗体,保存在%name%文件夹中,并命名为%name%.ui在%name%文件夹中,建立main函数使用qmake建立工程时(qmake -project;qmake %name%.pro),qmake会自动检测到用户界面文件%name%,ui并且可以生成适当的makefile规则来调用Qt的用户界面编译器(user interface comp

2011-09-14 10:20:59 6301

原创 Qt学习(1)

摘自:C++ GUI Qt4 编程(第二版),C++ GUI Programming with Qt4,Second EditionQt使用了独创的“元对象系统”对C++进行了扩展。其中包括两项关键技术:信号-槽以及内省(introspection)。内省功能对于实现信号和槽式必需的,并且允许应该用程序开发人员在运行时获得有关QObject子类的“元信息”(meta-information),

2011-09-14 09:51:36 918

原创 ITK VTK Qt in linux

编译环境: g++ @ ubuntuITK: InsightToolkit-3.20.0VTK: VTK-5.8.0ITK和VTK的结合:在ITK的安装包之外,有一个叫做InsightApplication-3.20.0的扩展包,其中有很多实用的程序,其中包括实用一个filter实现从itk到vtk的转换。VTK和Qt的结合:1.在使用CMAKE编译VTK时,可以将

2011-09-13 17:45:08 2532 1

转载 MFC 程序入口和执行流程

原帖地址:http://anony3721.blog.163.com/blog/static/511974201031953959757/一 MFC程序执行过程剖析1)我们知道在WIN32API程序当中,程序的入口为WinMain函数,在这个函数当中我们完成注册窗口类,创建窗口,进入消息循环,最后由操作系统根据发送到程序窗口的消息调用程序的窗口函数。而在MFC程序当

2011-09-01 10:32:03 555

转载 换行符 和 文件结束符EOF

转帖出处:http://zhangjunxin520.blog.163.com/blog/static/3050370320098610291239/关于文件结束符EOF  文本方式和二进制方式的最大区别在于文本方式对于''\n''换行符的理解不同(1)在DOS平台下,该字符会被展开成两个控制字符(相当于"\r\n"),在ASCII字符集下是 0DH,0AH

2011-08-08 10:53:23 5858

原创 ping不通 虚拟机

使用vmware搭建虚拟机时,遇到了如下情况:主机和虚拟机都可以连接互联网,局域网环境是自动获取IP,虚拟机采用NAT方式连接。结果虚拟机可以ping通主机,主机ping不通虚拟机。解决方案:VMware Network Adapter VMnet8的IP获取方式应该设为动态获取IP。

2011-06-21 10:03:00 581

转载 Linux/Ubuntu 下编译安装Qt(和减少Qt编译时间)

原帖地址:http://www.linuxidc.com/Linux/2011-02/32536.htm [日期:2011-02-20] 来源:Linux社区  作者:yosolyjux  使用Qt编程简单的方法是下载Qt SDK 安装,跟安装一般的程序一样,很快,很简单。安装完后,在 应用-编程 那就会看到一个Qt Creator的东西,利用它就可以进行Qt编程了。

2011-06-16 14:19:00 1465

原创 ubuntu 新建用户

adduser:会有提示,一步一步引导新用户建立的整个过程,推荐使用useradd:使用本命令建立的用户没有主目录userdel:删除用户系统安装过程中建立的第一个用户属于admin用户组,该组用户可以使用"sudo "运行系统命令。将新用户加入到admin组中:sudo vim /etc/group ,然后在admin对应的一行后面将新用户逐个添加即可,每个用户名之间用逗

2011-05-31 11:05:00 2394

原创 linux控制台

<br />一般而言,linux下有6个虚拟控制 台,控制台七是默认的图形界面。当一个控制台运行了GUI时(startx)其他控制台如果输入startx会警告已经有一个图形界面在运行了,启动新的图形程序运行失败。 这就意味着在一台机上只能有一个用户可以登录到GUI(这不是什么大问题,因为现在一台电脑基本同一时间内只由一个人使用),支持多个GUI就可以在一些特殊的主机上(如主板上有两个VGA接口,两个键盘和鼠标接口--即主机可以同时被两个人使用)发挥作用,

2011-05-20 09:42:00 2228

原创 iostream.h与iostream是不同的

#include是在旧的标准C++中使用。在新标准中,用#include。        #include是标准的C++头文件,任何符合标准的C++开发环境都有这个头文件。说明:后缀为.h的头文件C++标准已经明确提出不支持了,早些的实现将标准库功能定义在全局空间里,声明在带.h后缀的头文件里,C++标准为了和C区别开,也为了正确使用命名空间,规定头文件不使用后缀.h。因此,当

2011-05-04 16:58:00 446

原创 修改linux账户的默认shell类型

当我新建了一个账号,发现登录后很不习惯。原来系统给我的shell不是是sh,我都是用bash的,这可怎么办来?当然可以使用$bash来切换,但是这个方法治标不治本。每个账户登录后所启动的默认shell是保存在/etc/passwd 中的可以使用cat来查看$cat /etc/pa

2011-04-29 09:56:00 2493

原创 VMWare 联网配置

<br /><br />VMWare提供了三种工作模式,它们是bridged(桥接模式)、NAT(网络地址转换模式)和host-only(主机模式)。 <br /> 如果你想利用VMWare在局域网中新建一个独立的虚拟服务器,为局域网用户提供网络服务;或者想创建一个与网内其他机器相隔离的虚拟系统,进行特殊的调试工作。此时,对虚拟系统工作模式的选择就非常重要了。如果你选择的工作模式不正确,就无法实现上述目的,也就不能充分发挥VMWare在网络管理和维护中的作用。现在,让我们一起走近VMWare的三种工作模式。

2011-04-27 15:42:00 497

原创 linux设置

linux设置DNS方法文章分类:操作系统[问题描述 ]Linux下如果ping一个域名,出现如下状况:#ping www.taobao.comping: unknown host www.taobao.com 那是因为系统没有设置DNS的缘故。在此场景下,任何通过域名的操作都会有问题。[解决办法 ]1、查看DNS设置#cat /etc/resolv.conf如果能看到 nameserver xxx.xxx.xxx.xxx说明DNS已经设置,这时要考虑设置的DN

2011-04-27 14:42:00 339

原创 图像的存储

<br /> <br />数字图像的大小,是由点阵的规模和色彩方案决定的。点阵规模就是常用的分辨率,是指横向像素值*纵向像素值(如800*600、1024*768),该参数描述的是图像的最大表现能力。显示效果与显示器的性能和设置有关,不在本文讨论范围。<br /> <br />常用的色彩方案有灰度图像,RGB色彩模式和YUV等。<br />灰度图像不含色相(色调)信息,只现色彩三要素中的明度。它使用百分比的方式表示纯白到纯黑,以及两者之间的一系列过渡色,如果用一个字节(8bit)来表示,共有256个灰度级,

2011-04-01 10:33:00 645

TCP通信-使用winsocket

TCP通信的演示程序吧算是,使用了多线程,阻塞selelct模型,支持多客户端,但是...(服务器发送消息时,不确定发个哪个,囧,就不去完善了)

2010-05-21

多线程示例程序(vs2005)

售票系统演示,网上搜的,在vs2005里实现,非原创

2010-05-21

空空如也

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

TA关注的人

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