自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

阿罗的技术博客

求知若渴,虚怀若愚。

  • 博客(36)
  • 资源 (2)
  • 收藏
  • 关注

原创 常用数据结构与算法之查找算法

查找算法/* * ===================================================================================== * * Filename: search.h * * Description: template function of search algo * * V

2012-04-15 20:10:48 731

原创 常用数据结构与算法之排序算法

排序算法/* * ===================================================================================== * * Filename: sort.h * * Description: template func of rand & sort alg * * Ver

2012-04-15 20:08:44 676

原创 Perl 学习笔记(13) -- 面向对象的perl(包和模块)

Perl5的包和模块模块简介模块(module)就是Perl包(pachage)。Perl中的对象基于对包中数据项的引用。下面三个定义对理解对象、类和方法在Perl中如何工作至关重要。类是一个Perl包,其中含提供对象方法的类。方法是一个Perl子程序,类名是其第一个参数。对象是对类中数据项的引用。Perl的类面向对象的一个重要特性是继承。Perl中的继

2012-03-22 23:45:01 1264

原创 Perl 学习笔记(12) -- 引用

引用引用就是指针,可以指向变量、数组、哈希表(也叫关联数组)甚至子程序。Perl5中的两种引用类型为硬引用和符号引用。符号引用含有变量的名字,它对运行时创建变量名并定位很有用,基本上,符号引用就象文件名或UNIX系统中的软链接。而硬引用则象文件系统中的硬链接有多种构建引用的方法,几乎可以对任何数据建立引用,如数组、简单变量、子程序、文件句柄,以及C程序员会感兴趣的引用。Perl使你有能

2012-03-22 23:40:28 626

原创 Perl 学习笔记(11) -- 进程管理及其他

进程管理system. 于linux中的系统函数system类似,将产生一个子进程并返回通过参数传入的命令的结果,在执行结束前父进程一直等待。如果需要后台运行则加&符。system也支持多参数版本,后面的参数作为第一个的命令的执行参数合并进来。exec.类似系统的exec系统函数,执行后新的程序替换当前perl脚本进程的进程空间。反引号捕获输出结果。$date = `date`;

2012-03-22 23:38:17 905

原创 Perl 学习笔记(10)-- 智能匹配和given-when

智能匹配智能匹配符~~,是一种根据要匹配(比较,判断)的上下文进行自动功能选择的一个很灵活的操作符,它在不同的上下文环境中有着不同的作用。%a ~~ %b 哈希的键是否一致%a ~~ @b 至少%a中的一个键在列表@b中%a ~~ /Fred/ 至少一个键值匹配给定的模式%a ~~ 'Fred' 哈希中某一指定的键值$a{'Fred'}存在@a ~~ @b 数组是否

2012-03-22 23:36:44 638

原创 Perl学习笔记(9) 字符串操作与排序

字符串操作与排序找出主串中子串的位置。$pos = index($string, $substr);返回在$string中第一次出现$sbustr的位置。抽取出字串substr。 my $sub = substr($string, $startpos , $len);格式字符串函数sprintf, my $str = sprintf "%d,%f, %s",$date,$value,$na

2012-03-20 23:57:49 524

原创 Perl学习笔记(8) -- 模块的使用和文件测试

模块的使用查找模块,到cpan上查找,对已安装的可以通过perldoc命令查看帮助安装模块,一般解压,根据INSTALL文件操作,通常是perl Makefile.PL;make的方法。还可以通过cpan直接网络安装模块CPAN安装perl 包$ perl -MCPAN -eshellcpan> install pakageName使用模块.通过use pakagename

2012-03-20 23:56:33 765

原创 Perl学习笔记(7) --控制结构和目标操作

控制结构前面已经提到的控制结构有if {} ,if {} else {}, while(){} , foreach 还有些其他的控制结构,比如 unless() {} 是if的反义词,在bool表达式为假的时候执行后面的语句块,同理还有until是while的反义。它们的用法和之前的一样。perl的if,else,until,while,unless等后的遇见都必须带括号,而不象c/C++

2012-03-20 23:55:23 1115

原创 基于K-Means的文本聚类

何为聚类        “聚类是把相似的对象通过静态分类的方法分成不同的组别或者更多的子集(subset),这样让在同一个子集中的成员对象都有相似的一些属性。”

2012-03-20 23:07:54 30115 3

原创 Perl学习笔记(6)-- 正则表达式

正则表达式组号 在正则表达式中用()可以对匹配内容进行分组,并且可以用\1,\2之类的来引用所匹配的组。新的perl还支持\g{N}的方式应用匹配的组号选择匹配,用|可以选择匹配左边或右边, /fred|barrey|betty/字符集合,用[]可以描述待匹配的字符的集合比如[abcdef12345]字符集合,也有些字符集合的简写形式如\w表示[A-Za-z],\d表示[0-9],

2012-03-19 21:34:37 939

原创 Perl 语言笔记(5) -- 哈希

哈希哈希的访问哈希元素的访问,$hash_name{$key} = $value;哈希会在根据需要的时候动态创建键值对。访问不存在的键将返回undef访问整个哈希。%hash = {"foo",23,"bee","30,"col",4.2};将两两成对(键值对)。%new_hash = %old_hash;%inverse_hash = reverse %hash。将键值对

2012-03-19 21:33:22 739

原创 Perl 语言笔记(4) -- 输入输出

输入输出标准行输入符用于返回从标准输入端读入的一行内容(带换行),一般用 chomp($line =),也可以循环读while(chomp($line =)),在列表上下文中返回标准 输入端的所有行的列表。比如foreach()钻石操作输入符例如while(defined($line=print print sort 钻石操作符之前,对@ARGV动的手脚都会影响后面

2012-03-19 21:31:16 894

原创 Perl 语言笔记(3) -- 子函数

子函数子函数的定义sub 子函数明{ #statement }, 子函数名如果重名,则后定义的覆盖前定义的,如果与系统函数名字则必须在子函数明前加&来显示的调用。子函数的调用一般在子函数名前加&调用,如果调用时,子函数已经在前面定义过则&可以省略。调用的时候函数参数没有限制。子函数的参数子函数通过数组@_来传递参数,参数也可以通过$_[0],$_[1]方式进行单个的引用

2012-03-19 21:29:03 1920

原创 Perl 语言笔记(2) -- 列表与数组

列表与数组列表是标量的有序集合,数组是存储列表的变量访问数组的元素,下标必须是数字,不存在的元素为undef,超过尾端的下标进行赋值,数组自动扩大,空洞中的为undef。用负数作下标,返回尾端开始的元素,下标-1表示最后一个元素的下列表和标量一样支持在双引号的字符串中“内插”列表的形式,比如(1,2,3)(1..100) 必须升序("abc", 1.2, 3,"he

2012-03-19 21:27:23 836

转载 网上可供下载的重要数据大整理

目前网上可供下载的数据众多,但是内容庞杂,我把其中比较有用的数据找了出来。   wiki系: wikipedia大家都不陌生,它的下载地址是:http://dumps.wikimedia.org/ , 这里有详细介绍:http://en.wikipedia.org/wiki/Wikipedia:Database_download 但是wikipedia只是Wikimedia基金

2012-03-19 21:17:26 5815

原创 常用数据结构之Huffman树及应用

从树中一个节点到另一个节点自己的分支构成两个节点之间的路径,路径上的分支数目称做路径长度。树的路径长度就是从树的根节点到每一个节点的长度之和。      假设一颗有N个节点的二叉树,每个叶子节点都带权值wk,每个叶子节点的路径长度为lk。我们称带权路径长度WPL最小的二叉树称做huffman树(最优二叉树)。       huffman树的构造方法:       1、根据k个权值{w1

2012-03-17 19:43:38 984

原创 常用数据结构之链式存储二叉树

树:是n(n>=0)个节点的有限集合。有且仅有一个特定的根节点。每个节点的子节点的个数称为节点的度,树的度是树内各个节点度的最大值。除了根节点,每个节点都有其双亲,同一双亲的节点称为兄弟节点,子节点位于其双亲节点的下一层,其中根节点为第一层。树中节点的最大层次为树的深度或高度。树中各子树次序不可换的称为有序树,否则为无序树。     树的三种表示法:     1、双亲表示法。既每个节点中,

2012-03-17 18:59:06 1471 3

原创 常用数据结构之链式存储队列

与顺序存储结构的队列不同,链式存储可以自由的扩展存储个数。设计时一般使用一个头节点和尾节点。头节点用于入队,尾节点用于出队。       其结构图如下所示:     用C++模板类实现的代码如下:/* * ====================================================================================

2012-03-15 00:58:44 552

原创 常用数据结构之基于数组的循环队列

队列是一种FIFO的存取方式,用数组来存储普通的队列时,一方面可能存储空间不够,另一方面容易出现“假溢出”。基于数组的循环队列避免不了第一个问题,但可以很好的解决第二个问题。下面是循环队列的结构图:                           如图所示队空时rear=front,对满时rear在front的后面。顺序结构循环队列没有解决存储空间溢出的问题,在rear大于front时

2012-03-15 00:44:25 1382

原创 常用数据结构之链式存储的栈

链式存储的栈用链表的第一个节点作为栈顶,压栈和出栈都是通过对链表的头进行添加删除来实现的。       下面是链式存储结构栈的示意图:                 用C++模板类实现的代码如下:/* * ===============================================================================

2012-03-15 00:20:39 580

原创 常用数据结构之顺序存储的栈

栈是一种LIFO的数据结构,支持从栈顶进行数据的压入(入栈)和弹出(出栈),可应用于将递归算法变成非递归,逆波兰后缀表达式等等。       画了张简单的结构图,如下所示:         用C++模板类实现的代码如下所示:/* * ======================================================================

2012-03-14 23:53:56 517

原创 常用数据结构之linklist链式线性表

此数据结构的ADT就不说了,用链式实现线性表。实现的版本中包含一个head节点,用于指向线性表。        链表的长度包括a1~an。下面是用C++模板类实现的一个链表方式存储的线性表linklist/* * ================================================================================

2012-03-14 23:33:25 1932

原创 VIM做c/c++ perl的开发编辑器

几乎每天上班第一件事就是,打开vim。vim的强大不在于它实现了多少功能,而是它能让你想到的功能都能有办发做到。vim的强大在于他提供了一个开放的平台,一个框架让用户按自己的心去随意的添加想要的功能。这种伟大的软件看起来不起眼,却有无穷的魅力。类似的emacs,eclipse都有这样的特性,可见程序的开放性和扩展性是多么的重要。 一直选择vim,有两个原因:1,vim可以满足我这个懒人的,想到和想

2012-03-10 19:47:47 2483

原创 常用的cvs命令--cvs tips

将branch分支同步到最新的HEAD分支的命令:cvs co terminalcvs up -j branch -j HEAD -d . && cvs upcvs ci XXXX (表示目录或文件)给最新代码打上标签:cvs tag -c tagname .移动代码标签:cvs tag -c -F tag-name .删除代码标签:cvs tag -c -d

2012-03-10 18:39:13 592

原创 常用数据结构之顺序结构List实现

用C++的模板类写了个普通的List类,顺序结构存储的。留个备份。(模板类在G++中只能将声明与定义放在头文件里,C++标准也是这么说的)     基于数组实现的列表,就是一数组的封装,其插入和删除的时间复杂度是O(n)。后面还有一个简单的调用例子/* * ================================================================

2012-03-10 16:36:00 611

原创 一个简单的Makefile

把平时写的东西留个备份,经常找不到。一个简单的Makefile,用于对当前目录下c,cpp文件编译连接,主要是写一些例子程序的时候用到。################OPTION###################CCOMPILE = gccCPPCOMPILE = g++OPTIMIZATION = strip --strip-allLINK = g++ARCH = a

2012-03-10 16:28:17 558

原创 Perl 语言笔记(1)-标量类型

标量类型字符串的两种形式单引号‘: 除了\'代表‘, \\代表\外引号内的所有内容代表他自己。双引号“: 可以嵌入控制字符,嵌入十进制,八进制,16进制的数字,嵌入转义符号,字符串操作连接符.:$str1.$str2 "hello".“world"重复符x: "ab"x4 // "abababab" 5x4 //5555 注意与乘法运算符的区别5*4 = 20

2012-03-10 16:20:01 804

原创 C/C++笔记 -- C++ 多态

1、函数的重载      函数重载依据参数列表的不同来区分,而与返回值无关。全局函数和类成员函数同名同参不算重载,其作用域不一样。2、成员函数的重载(overload),覆盖(overrid)和隐藏       成员函数的重载是:具有相同的作用域,函数名字相同,参数类型(包括const或非const),顺序或数目不同,virtual关键字忽略。      覆盖是指派生类重新定义了基

2012-03-03 02:14:47 561

原创 C/C++笔记 --C++ 面向对象

1、虚函数        定义虚函数的类称为多态类,编译器会为多态类自动生成一个虚函数表vtable。vtable是一个函数指针数组,用来描述每个类的虚函数地址。多太类同时还有一个指向虚函数表的指针,为类的对象访问虚函数。vtable中还应包含typeInfo的信息,用来做RTTI。派生类的vtable应该兼容其基类的vtable。只有通过传派生类引用或指针的形式才能让基类使用派生类的虚函数。

2012-03-03 02:11:07 747

原创 GDB的字符终端的替换工具——CGDB的使用与介绍

项目网站:cgdb.sourceforge.net       cgdb可以看作gdb的界面增强版,用来替代gdb的 gdb -tui。cgdb主要功能是在调试时进行代码的同步显示,这无疑增加了调试的方便性,提高了调试效率。界面类似vi,符合unix/linux下开发人员习惯,所以如果熟悉gdb和vi,几乎可以立即使用cgdb。主要功能介绍:1) 相比GDB,增加了语法

2012-02-27 22:52:12 15585

原创 APUE(UNIX环境高级编程)的源代码编译与调试

背景:APUE这些年陆陆续续看了几遍,一直是桌子边的必放的参考书,但是一直没有把它的例子程序玩一遍,这一直是我心中的遗憾。今天尝试把原书(第二版)提供的代码下载下来,在我用的机器上跑起来,算了却我这个心愿的头一步吧。获取APUE代码      下载APUE的源代码包:        wget http://www.apuebook.com/src.tar.gz       解压

2012-02-27 22:12:55 1412

原创 C/C++ 笔记 -- 基本概念(2)

多维数组       一个多维数组在语义上并不等价于一个指向其元素类型的指针,相反他等价于一个“指向数组的指针"int b[3][4]     int(*const b)[4]int c[3][4][5]   int(*const c)[4][5]char *p1 =  new char[5][3];           // ERROR!语义不等价int *p2 =

2012-02-27 21:26:27 450

转载 函数调用规范

函数调用规范调用规范是指进行一次函数调用所采用的传递参数的方法,返回值的处理以及堆栈的清理等等。常见的调用规范有:stdcall、cdecl、fastcall、thiscall、nakedcall一、stdcall调用规范    stdcall很多时候被称为pascal调用规范,因为pascal是早期很常见的一种教学用计算机程序设计语言,其语法严谨,使用的函数调用约定是stdcal

2012-02-26 23:37:33 966

原创 C/C++ 笔记 -- 基本概念(1)

背景:最近打算跳槽了,把以前翻过的书温习下,顺便记一记笔记,可能比较杂。基本概念关于main1、C++的main函数的限制   不能重载,不能内联   不能定义为静态的   不能取其地址,不能自己调用自己。2、main函数   进入之前初始化全局变量(extern或static),若main结尾没有return语句,则等效return 0;关于名

2012-02-26 23:26:29 508

原创 开博宣言

终于走出这一步了,有些激动,有些期待,更多的是喜悦。    06年就申请了csdn的帐号, 很少登录。毕业也4~5年了,一直执着于编程,纯coder一个。这些年各种项目做过,技术的东西接触也不少,但除了脑袋偶尔回想到的一点,啥也没留下。年初想到要开个博客,初衷很简单,将以后的技术积累沉淀下来。    在csdn上开技术博客,其实有蛮多好处的。    1、多一个知己,多一个生活圈子。每当

2012-02-25 01:16:15 471

luke for lucene 4.5.0

用来调试查看lucene 4.5 的索引工具

2013-11-01

我的VIM配置

我的vim配置,稳定的使用了2两年多了,作C/C++,Perl开发很爽的。

2012-03-10

空空如也

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

TA关注的人

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