2012年5月15日

摘要: sgi stl中list的sort()函数内容如下:[cpp] view plaincopy//list不能使用STL算法sort(),必须使用自己的sort()memberfunction,//因为STL算法sort()只接受RamdonAccessIterator.//本函式采用quicksort.template<classT,classAlloc>voidlist<T,Alloc>::sort(){//以下判断,如果是空白串行,或仅有一个元素,就不做任何动作。if(node->next==node||link_type(node->next)-> 阅读全文
posted @ 2012-05-15 11:58 i活着 阅读(368) 评论(0) 推荐(0)

2012年4月12日

摘要: Qt多线程Qt线程类Qt 包含下面一些线程相关的类:QThread提供了开始一个新线程的方法QThreadStorage提供逐线程数据存储QMutex 提供相互排斥的锁,或互斥量QMutexLocker是一个便利类,它可以自动对QMutex加锁与解锁QReadWriterLock提供了一个可以同时读操作的锁QReadLocker与QWriteLocker是便利类,它自动对QReadWriteLock加锁与解锁QSemaphore提供了一个整型信号量,是互斥量的泛化QWaitCondition提供了一种方法,使得线程可以在被另外线程唤醒之前一直休眠。Qt线程的创建 Qt线程中有一个公共的抽象类, 阅读全文
posted @ 2012-04-12 15:07 i活着 阅读(1205) 评论(0) 推荐(0)

2012年4月11日

摘要: Copy-on-write(以下简称COW)是一种很重要的优化手段。它的核心思想是懒惰处理多个实体的资源请求,在多个实体之间共享某些资源,直到有实体需要对资源进行修改时,才真正为该实体分配私有的资源。COW技术的一个经典应用在于Linux内核在进程fork时对进程地址空间的处理。由于fork产生的子进程需要一份和父进程内容相同但完全独立 的地址空间,一种做法是将父进程的地址空间完全复制一份,另一种做法是将父进程地址空间中的页面标记为”共享的“(引用计数+1),使子进程与父进程共享 地址空间,但当有一方需要对内存中某个页面进行修改时,重新分配一个新的页面(拷贝原内容),并使修改进程的虚拟地址重定 阅读全文
posted @ 2012-04-11 15:43 i活着 阅读(420) 评论(0) 推荐(0)

2012年3月31日

摘要: C语言跟内存分配方式 (1) 从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static变量。 (2) 在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。 (3)从堆上分配,亦称动态内存分配。程序在运行的时候用malloc或new申请任意多少的内存,程序员自己负责在何时用free或delete释放内存。动态内存的生存期由我们决定,使用非常灵活,但问题也最多 C语言跟内存申请相关的函数主要有 alloca... 阅读全文
posted @ 2012-03-31 17:41 i活着 阅读(426) 评论(0) 推荐(0)
摘要: 选择现在来推荐C++图书,看似蹊跷,实则是有原因 的。我们的专栏去年初从Java图书开始,一年多的时间里始终对 C++触及甚少。C++程序员出身的我,已经受到了不少好友和读者的质疑。去年是C++诞生20周年(从1985年第一个商业实现的发布算起),世界各地 包括国内都举行了不少活动,当时本来已经动笔写了一个初稿,也想来个献礼,但是稿成之后,看看又不满意,加之俗务缠身,就放了下来。这一拖,又是小半年。 终于促使我“重续前缘”的是今年以来发生的两件事。一是国内又一轮C++好书扎堆儿出版,增加了本文的必要性,否则,荣耀先生在2004年所写的《C++程序设计之四书五经》(《程序员》杂志,http:/. 阅读全文
posted @ 2012-03-31 17:07 i活着 阅读(523) 评论(0) 推荐(0)

2012年3月27日

摘要: 稍微总结下,OpenCv与Qt结合最主要的问题应该就是图像的显示了,即IplImage在Qt上的显示。参考的几个资料:资料1:http://www.qtcentre.org/threads/11655-OpenCV-integration资料2:http://code.google.com/p/zarzamora/资料3:http://www.morethantechnical.com/2009/03/05/qt-opencv-combined-for-face-detecting-qwidgets/大多数的方案都是将IPLimage转到Qimage来显示,资料2提供了QOpencv包,对里面 阅读全文
posted @ 2012-03-27 22:22 i活着 阅读(954) 评论(0) 推荐(0)

2012年3月7日

摘要: 安装环境:Win7 64位系统,Geforce GT 430显卡安装前提: Visual Studio 2010 Visual Assist X安装步骤:1,Nvidia显卡驱动,装275.33版,这是最新版本驱动,初次安装为了少出错,最好安装比较新版本的驱动。2,Cuda Toolkit 4.0安装,CUDA 4.0的新特性可以参见其Release Notes,其中包括了本文将要介绍的Thrust库。3,CUDA Tools SDK4.0 安装,默认安装路径可能是C:\ProgramData\NVIDIA Corporation\NVIDIA GPU Computing SDK 4.0,记这 阅读全文
posted @ 2012-03-07 15:26 i活着 阅读(368) 评论(0) 推荐(0)

2012年3月5日

摘要: 在揭开typeid神秘面纱之前,我们先来了解一下RTTI(Run-Time Type Identification,运行时类型识别),它使程序能够获取由基指针或引用所指向的对象的实际派生类型,即允许“用指向基类的指针或引用来操作对 象”的程序能够获取到“这些指针或引用所指对象”的实际派生类型。在C++中,为了支持RTTI提供了两个操作符:dynamic_cast和 typeid。 dynamic_cast允许运行时刻进行类型转换,从而使程序能够在一个类层次结构中安全地转化类型,与之相对应的还有一个非安全的转换操作符 static_cast,因为这不是本文的讨论重点,所以这里不再详述,感兴趣的可 阅读全文
posted @ 2012-03-05 16:08 i活着 阅读(431) 评论(0) 推荐(0)

2012年1月6日

摘要: EM是我一直想深入学习的算法之一,第一次听说是在NLP课中的HMM那一节,为了解决HMM的参数估计问题,使用了EM算法。在之后的MT中的词对齐中也用到了。在Mitchell的书中也提到EM可以用于贝叶斯网络中。下面主要介绍EM的整个推导过程。1. Jensen不等式 回顾优化理论中的一些概念。设f是定义域为实数的函数,如果对于所有的实数x,,那么f是凸函数。当x是向量时,如果其hessian矩阵H是半正定的(),那么f是凸函数。如果或者,那么称f是严格凸函数。 Jensen不等式表述如下: 如果f是凸函数,X是随机变量,那么 特别地,如果f是严格凸函数,那么当且仅当,也就是说X是常量。 这里. 阅读全文
posted @ 2012-01-06 12:19 i活着 阅读(271) 评论(0) 推荐(0)

2011年12月11日

摘要: 本文对Windows平台下常用的计时函数进行总结,包括精度为秒、毫秒、微秒三种精度的5 种方法。分为在标准C/C++下的二种time()及clock(),标准C/C++所以使用的time()及clock()不仅可以用在Windows 系统,也可以用于Linux系统。在Windows系统下三种,使用Windows提供的API接口timeGetTime()、 GetTickCount()及QueryPerformanceCounter()来完成。文章最后给出了5种计时方法示例代码。标准C/C++的二个计时函数time()及clock()time_t time(time_t *timer);返回以格 阅读全文
posted @ 2011-12-11 15:20 i活着 阅读(23686) 评论(0) 推荐(4)

导航