posts - 12,  comments - 1,  trackbacks - 0
  2012年12月21日
正文内容加载中...
posted @ 2012-12-21 17:11 Sparkjin 阅读 (553) 评论 (0) 编辑
  2012年11月15日
摘要:使用C语言编写程序需要获得当前精确时间(UNIX到现在的时间),或者为执行计时,可以使用gettimeofday()函数。它的[1]: #include <sys/time.h> int gettimeofday(structtimeval*tv, struct timezone *tz); 其参数tv是保存获取时间结果的结构体,参数tz用于保存时区结果(若不使用则传入NULL即可)。 结构体timeval的定义为: struct timeval { long tv_sec; // 秒数 long tv_usec; // 微秒数 } 它获得的时间精确到微秒(1e-6 s)量级... 阅读全文
posted @ 2012-11-15 16:25 Sparkjin 阅读 (134) 评论 (0) 编辑
  2012年9月25日
摘要:SQL 不同于与其他编程语言的最明显特征是处理代码的顺序。在大数编程语言中,代码按编码顺序被处理,但是在SQL语言中,第一个被处理的子句是FROM子句,尽管SELECT语句第一个出现,但是几乎总是最后被处理。 每个步骤都会产生一个虚拟表,该虚拟表被用作下一个步骤的输入。这些虚拟表对调用者(客户端应用程序或者外部查询)不可用。只是最后一步生成的表才会返回 给调用者。如果没有在查询中指定某一子句,将跳过相应的步骤。下面是对应用于SQL server 2000和SQL Server 2005的各个逻辑步骤的简单描述。(8)SELECT(9)DISTINCT(11)<TopNum>< 阅读全文
posted @ 2012-09-25 18:38 Sparkjin 阅读 (104) 评论 (0) 编辑
  2012年9月10日
摘要:KMP算法原理及next原文:http://youlvconglin.blog.163.com/blog/static/5232042010530101020857/ KMP是一个高效的字符串匹配算法,它是由三位计算机学者 D.E.Knuth 与 V.R.Pratt 和 J.H.Morris 同时发现的,因此人们通常简称它为 KMP 算法。可以证明它的时间复杂度为O(m+n),直观地看,是因为在匹配过程中指针 i 没有回溯。KMP算法的核心思想是利用已经得到的部分匹配信息来进行后面的匹配过程。一般匹配算法中,进行"两个子串的比较"过程中,不管是T串的第几个字符发生" 阅读全文
posted @ 2012-09-10 11:48 Sparkjin 阅读 (982) 评论 (1) 编辑
  2012年9月8日
摘要:mutalbe的中文意思是“可变的,易变的”,跟constant(既C++中的const)是反义词。 在C++中,mutable也是为了突破const的限制而设置的。被mutable修饰的变量,将永远处于可变的状态,即使在一个const函数中。 我们知道,如果类的成员函数不会改变对象的状态,那么这个成员函数一般会声明成const的。但是,有些时候,我们需要在const的函数里面修改一些跟类状态无关的数据成员,那么这个数据成员就应该被mutalbe来修饰。 下面是一个小例子:class ClxTest{ public: void Output() const;};void ClxTe... 阅读全文
posted @ 2012-09-08 10:49 Sparkjin 阅读 (65) 评论 (0) 编辑
  2012年9月7日
摘要:建立~/.rpmmacros文件是存储各种宏定义,比如_topdir宏的值来自定义打包路径echo "%_topdir $HOME/rpmbuild" > ~/.rpmmacros相当于在.rpm文件中写入%_topdir $HOME/rpmbuild即定义%_topdir为路径$HOME/rpmbuild 阅读全文
posted @ 2012-09-07 21:39 Sparkjin 阅读 (732) 评论 (0) 编辑
摘要:在 CentOS 下设置一个创建 RPM 的环境这份文件会指引你如何在 CentOS 下安装及设置一个用来创建 RPM(及重建 SRPM)的环境。切勿以 root 的身份来创建 RPM。这个工作应该永远在一个没有特殊权限的户口内进行。以 root 的身份来创建 RPM 可能会损坏你的系统。已经预先警告过你了。一、检查你已经安装了 rpmbuild首先,你应该检查rpmbuild是否已经被安装在你的系统上。你将会利用这个工具从 spec 文件或 SRPM 组件创建 RPM。要检查它是否被安装了,请执行rpmbuild--showrc这个指令。它将会显示一大组数据,把rpmbuild所采用的创建环 阅读全文
posted @ 2012-09-07 20:45 Sparkjin 阅读 (1195) 评论 (0) 编辑
  2012年9月6日
摘要:原文:http://zhumeng8337797.blog.163.com/blog/static/100768914201181782310771/最近学习rpm打包,参考ibm文档库里rpm打包的文章,结合自己的实践,总结如下,一来备忘,二来和大家交流。和deb打包不同,rpm打包需要特定的目录及结构。查看rpm打包目录,以下为在CentOS5.5下的输出结果:$ rpm --showrc|grep _topdir -14: _builddir %{_topdir}/BUILD -14: _rpmdir %{_topdir}/RPMS -14: _sourcedir %{_t... 阅读全文
posted @ 2012-09-06 16:53 Sparkjin 阅读 (868) 评论 (0) 编辑
  2012年6月4日
摘要:通过继承机制,可以利用已有的数据类型来定义新的数据类型。所定义的新的数据类型不仅拥有新定义的成员,而且还同时拥有旧的成员。我们称已存在的用来派生新类的类为基类,又称为父类。由已存在的类派生出的新类称为派生类,又称为子类。 在C++语言中,一个派生类可以从一个基类派生,也可以从多个基类派生。从一个基类派生的继承称为单继承;从多个基类派生的继承称为多继承。 派生类的定义格式 单继承的定义格式如下: class <派生类名>:<继承方式><基类名> { <派生类新定义成员> }; 其中,<派生类名>是新定义的一个类的名字,它是从<基类 阅读全文
posted @ 2012-06-04 15:56 Sparkjin 阅读 (749) 评论 (0) 编辑
  2012年5月22日
摘要:转自:http://www.cnblogs.com/icebutterfly/archive/2009/08/05/1539657.html语法:ROW_NUMBER() OVER(PARTITION BY COLUMN ORDER BY COLUMN)简单的说row_number()从1开始,为每一条分组记录返回一个数字,这里的ROW_NUMBER() OVER (ORDER BY xlh DESC) 是先把xlh列降序,再为降序以后的没条xlh记录返回一个序号。 示例: xlh row_num 1700 1 1500 2 1085 3 710 4 row_number() OVER (PA 阅读全文
posted @ 2012-05-22 17:59 Sparkjin 阅读 (142) 评论 (0) 编辑