- 博客(269)
- 资源 (4)
- 收藏
- 关注
原创 [小记]三色旗问题,可以转换为负数,0,正数划分问题
#include "stdafx.h"/************************************************************************//*编程解决三色旗问题,一个字符型数组color,其中每个元素值为'R','W','B'三/*者之一(代表红、蓝、白三色)编程实现把数组中元素重新排列:所有蓝色在前,/*白色其后,红色最后。例如:原数组RW
2012-05-04 00:13:21
2698
原创 [小记]二叉树的先序中序后序递归非递归遍历,层次遍历和完全二叉树的判断[4.24更新]
// BinaryTree.cpp : Defines the entry point for the console application.//#include "stdafx.h"/************************************************************************//* 二叉树的递归,非递归的前序,中序和后序遍历/*
2012-04-18 23:12:58
1594
原创 [小记]续红黑树插入和删除操作--SGI STL code注释
下面节选自STL源码剖析,简体是我的注释rb tree的自增和自减内部函数,自增或者自减寻找的是中序后继和中序前继void increment() { if (node->right != 0) { // 如果有右子節點。狀況(1) node = node->right; // 就向右走 while (node->left != 0) /
2012-04-15 10:23:31
3111
原创 [小记]红黑树的插入和删除操作
今天看了看红黑树,重点是红黑树的插入和删除红黑树特性1) 节点是红色或者黑色 2) 根节点是黑色3) 所有的叶节点(NIL节点)是黑色4) 如果有个节点是红色,则其子节点必然是黑色5) 从任一节点到其叶子节点的所有简单路径包含有相同数目的黑色节点从根到叶节点最短路径的情况,所有节点全为红色从根到叶节点最长路径的情况,为一个红色节点一个黑色节点间隔路径
2012-04-14 23:40:15
2979
原创 [小记]模板的泛化,全特化和偏特化
1)模板类的特化//1)类的特化//泛化templatestruct My{ My(){cout<<"General Version\n";} void test();};template //泛化必须带所有泛化的参数void My::test(){ cout<<"General Version: Test()\n";}//完全特化templat
2012-04-12 23:22:44
1671
原创 [小记]C++阴暗面,笔记,注释
一、不以为然不断变更的标准,迫使我们需要不断更新已有代码。 作者列出了几点其实影响并不是很大(循环变量的scope;头文件后缀;名字空间)。而且,为了标准的进步,偶尔做出的妥协也是应该的吧。不断变更的style,作者举得例子是:Old and busted:for (int i = 0; i n; i++)New hotness:for (in
2012-04-05 23:25:54
1238
原创 [小记]关于静态变量,有点意想不到的结果
1)静态变量int g=1;int foo_func(){ static int val; val=g++; return val;}void main(){cout<<foo_func()<<foo_func()<<foo_func()<<endl; //结果 321}如果改成int g=1;int foo_func(){
2012-04-05 22:39:32
762
[小记]意想不到的的结果
1)静态变量int g=1;int foo_func(){ static int val; val=g++; return val;}void main(){cout<<foo_func()<<foo_func()<<foo_func()<<endl; //结果 321}如果改成int g=1;int foo_func(){ static int val=g
2012-04-05 22:28:30
214
原创 地址对齐宏ALIGN
写出C语言的地址对齐宏ALIGN(Ptr, Bytes),其中Ptr是要对齐的地址,Bytes是要对齐的字节数(2的N次方),比如说:ALIGN(13,16)=16#define ngx_align(d, a) (((d) + (a - 1)) & ~(a -
2011-09-28 23:51:26
1805
原创 shell 获取两大文件的交集
两个文件格式上是一样的,一行一串数字。文件行上也许都不是唯一的。求出这两个文件的交集,结果应该是唯一的,而且是既在一文件中有的也在二文件中有的。一个文件在八十万行左右,另一个文件可能过三千万以上。awk 'NR==FNR{a[$1]=1}NR>FNR&&a[$
2011-09-27 14:36:21
1928
原创 数据结构-表达式求值-栈
一直以来都想像样的写个简单的利用栈结构来进行表达式求值的代码,以前转了一个用c写的表达式求值,有回复说有问题,其实是没有问题,只是不能处理超过2位数的非整形的表达式求值,现在我自己按照一样的算法写了一个多项表达式求值,支持+,-,*,/,^和括号的运算,暂时只支持双目运算,单目没
2011-09-22 23:48:42
1242
原创 Graphviz绘图小记
最近在做一个动态生成各种数据表格之间的互相关联的图像的东西,过程是用程序生成dot文件,然后利用Graphviz的dot工具生成可视化的图片其中有些对Graphviz的一些注意事项和经过多次尝试所得出的一些经验和感触,因为感觉最近脑子一直不好使,所以记录在此,以备后查。先
2011-08-20 00:34:17
2179
原创 Perl小记-Unix时间戳转换
<br />经常用到Unix时间戳,这里暂记一下,以后改改就可以直接调用<br /> <br /> <br /> <br /># ts_trans(unix-timestamp) will return GMT datetime# ts_trans(unix-timestamp,1) will return local datetimesub ts_trans{ ($ts,$is_local)=@_; if ($is_local eq ""){ ($sec,$min,$hr,$d
2011-03-23 16:08:00
1814
原创 Unix/Linux下打开大文件>2G的解决办法
<br />今天要分析一个4G多的大文件,结果发现fopen老是返回失败,上网查了下,原来是因为系统中>2G的文件打开都会有问题<br /> <br />然后加上_FILE_OFFSET_BITS=64 和 _LARGE_FILE的预定义,然后重新编译解析工具,就能够打开>4G的文件了,就这样问题解决了<br /> <br />CFLAGS = -O -Aa -D_FILE_OFFSET_BITS=64 -D_LARGE_FILE<br /> <br />其他还有例如,利用fopen64之类的调用,因为要改
2010-12-08 10:44:00
1454
原创 Firefox和IE浏览器收藏夹和google书签服务的同步
google 提供了书签收藏功能非常不错,但是如何跟Firefox和IE浏览器的收藏夹同步呢~ 对于Firefox可以安装GMark插件,登陆到google书签,替换Firefox的收藏菜单,GMark插件提供了(1)导入Firefox收藏到google线上书签的功能(2)导出GMark书签到bookmarks.html的功能这样,我们可以把bookmarks.html导入到I
2010-04-21 14:43:00
3090
原创 Apache+mod_wsgi+Django windows下的安装和配置
我的环境XP, site目录d:/WWW 1) 安装Python2.62) 安装Django1.1.1检测: #在site目录d:/www下,创建mytest测试python django-admin.py startprotject mytestcd mytest#启动mytest的servermanage.py runserver
2010-04-03 15:09:00
6394
2
转载 以任何目录为CMD初始当前目录的注册表脚本
经常使用Windows命令提示行的朋友都知道,在运行中用cmd命令或直接在附件中打开命令提示符时,默认的当前目录是操作系统设定的个人目录,如当前登陆的用户是Test,则当前目录一般是 C:/Documents and Settings/Test , 如果要使用命令行编译其他目录下的程序文件,如java文件,c#文件,则需要用cd命令切换(当然如果你使用集成开发环境则另当别论了),很不方
2010-03-05 15:55:00
1236
转载 linux调整系统时间 永久 z
参考资料一、linux调整系统时区/时间的方法(tzselect命令)1) 找到相应的时区文件 /usr/share/zoneinfo/Asia/Shanghai用这个文件替换当前的/etc/localtime文件。2) 修改/etc/sysconfig/clock文件,修改为:ZONE="Asia/Shanghai"[color=red]UTC=
2009-11-12 15:35:00
2032
原创 zdump 命令查看时区和夏令时
Solaris提供了一个zdump命令来查看某时区的时区规则,该命令的用法是:zdump -v 时区名称 | grep 年返回信息的格式如下:时区名称 UTC时间 本地时间 isdst=0/1isdst=0表示非夏令时,isdst=1表示处于夏令时。如果无夏令时,那么仅会返回一行信息,否则至少4行信息来描述夏令时规则。 说明1、夏令时规则一般都是固定为每年X月第X
2009-11-12 14:33:00
3958
转载 如何修改时区(TIMEZONE) z
现在的集群软件,大部分都需要多台机器的时间差不能超过1000秒,所以如果用户都用date命令去修改时间,这个比较简单就不多说了。然而,有时候两台机器的时间虽然一致,但是时区却不同,那么用户就不得不去修改机器的时区,这个修改在不同操作系统是不同的,所以这里分别介绍一下主流操作系统修改时区的方法:Solaris: 在solaris中,修改时区需要修改/etc/TIMEZONE文件,其中
2009-11-12 12:57:00
2312
转载 Yacc使用
Yacc使用索引:概念Yacc文件格式定义部分规则部分第三部分递归的处理If-Else的冲突出错处理Yacc源程序的风格1.概念yacc使用巴克斯范式(BNF)定义语法,能处理上下文无关文法(context-free)。出现在每个产生式左边(left-hand side:lh
2009-08-16 17:42:00
1325
转载 vim寄存器使用详解 [z]
vim寄存器使用详解 寄存器用于存储Vim操作中的特定内容,大多数normal命令和部分ex命令都可以指定操作关联的寄存器。寄存器同时也是Vim里特殊的变量,因此可以在命令行和脚本中被访问,实现一些非常有用的功能。Vim有很多不同类型的寄存器,各司其职,各具其能,若得灵活运用,会令编辑工作轻松高效。本文以Vim中常见的问题为例
2009-08-09 13:17:00
3020
1
转载 C/C++ 宏带来的奇技巧 [z]
众多C++书籍都忠告我们C语言宏是万恶之首,但事情总不如我们想象的那么坏,就如同goto一样。宏有一个很大的作用,就是自动为我们产生代码。如果说模板可以为我们产生各种型别的代码(型别替换),那么宏其实可以为我们在符号上产生新的代码(即符号替换、增加)。关于宏的一些语法问题,可以在google上找到。相信我,你对于宏的了解绝对没你想象的那么多。如果你还不知道#和##,也不知道pres
2009-07-07 17:29:00
592
转载 一个真正的Singleton[涉及DLL类静态成员问题][z]
一个真正的Singleton By SmartPtr(http://www.cppblog.com/SmartPtr/) 对于单件模式, 我想大家应该都不陌生,它可以说是GOF23个设计模式中最简单,最常用的一个模式了。但看似简单的东西却不一定好用,我就在使用时遇到了一个问题。1 一个简单的Singleton
2009-06-29 21:06:00
1910
1
转载 文件夹选择对话框,SHBrowseForFolder,文件夹选择,目录选择 z
正文1、API概述 使用Windows的SHBrowseForFolder可以实现目录选择功能。 该函数的参数也实现如下:见MSDN Displays a dialog box that enables the user to select a shell folder. LPITEMIDLIST SHBrowseForFolder(LPBROWS
2009-05-17 22:04:00
1299
转载 MFC CListCtrl 使用介绍 z
列表控件可以看作是功能增强的ListBox,它提供了四种风格,而且可以同时显示一列的多中属性值。MFC中使用CListCtrl类来封装列表控件的各种操作。通过调用BOOL Create( DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID );创建一个窗口,dwStyle中可以使用以下一些列表控件的专用风格: LVS
2009-05-17 18:04:00
4037
转载 MFC下让控件具有XP风格 z
如果你想让VS6, VS2003,的MFC程序拥有XP风格那么就学习下面的方法吧方法一: 1.首先确认你在Windows XP下,因为如果在98或2K下,那除非自己重画画所有界面,要不基本上是无法实现XP风格的。Code: version="1.0.0.0" processorArchitecture="X86" name="Microsoft.Windows.dummy"
2009-05-16 21:47:00
916
1
转载 C语言常用排序全解 z
*=============================================================================相关知识介绍(所有定义只为帮助读者理解相关概念,并非严格定义):1、稳定排序和非稳定排序 简单地说就是所有相等的数经过某种排序方法后,仍能保持它们在排序之前的相对次序,我们就说这种排序方法是稳定的。反之,就是非稳定的。 比如:一组数排序前是
2009-05-05 14:16:00
443
转载 time命令输出结果的意义 z
time命令结果有三行组成:real、user和sys。real值表示从程序开始到程序执行结束时所消耗的时间,包括CPU的用时。CPU用时被划分为user和sys两块。user值表示程序本身,以及它所调用的库中的子例程使用的时间。sys是由程序直接或间接调用的系统调用执行的时间。在单处理器上,real值和整个CPU用时之差,也就是real - ( user + sys )是所有延迟
2009-05-05 14:11:00
622
转载 脚本发邮件的几种方法 z
(1)mail和sendmail就不说了,man一下(2)Perl调用sendmail:#mysendmail.plopen (SENDMAIL, "|/usr/sbin/sendmail -oi -f linewer/@localhost.localdomain -t") or die "Cant fork for sendmail: $!/n";print SENDMAIL "EO
2009-05-05 14:08:00
1246
转载 什么是状态机? z
关于状态机的一个极度确切的描述是它是一个有向图形,由一组节点和一组相应的转移函数组成。状态机通过响应一系列事件而“运行”。每个事件都在属于“当前” 节点的转移函数的控制范围内,其中函数的范围是节点的一个子集。函数返回“下一个”(也许是同一个)节点。这些节点中至少有一个必须是终态。当到达终态, 状态机停止。 包含一组状态集(states)、一个起始状态(start st
2009-05-05 14:01:00
770
转载 算法合集 z
一、数论算法 1.求两数的最大公约数 function gcd(a,b:integer):integer;begin if b=0 then gcd:=a else gcd:=gcd (b,a mod b);end ; 2.求两数的最小公倍数 function lcm(a,b:integer):integer;begin if a lcm:=a; while
2009-05-05 13:58:00
502
转载 C语言常用宏定义技巧 z
1、防止一个头文件被重复包含#ifndef COMDEF_H#define COMDEF_H //头文件内容#endif2、重新定义一些类型,防止由于各种平台和编译器的不同,而产生的类型字节数差异,方便移植。typedef unsigned char boolean; /* Boolean value type. */typedef unsigned long int
2009-05-05 13:40:00
432
转载 整理Linux下gcc编译中关于头文件与库文件搜索路径相关问题 z
如何指定GCC的默认头文件路径网上偶搜得之,以之为宝:)原地址:http://blog.chinaunix.net/u/28781/showart.php?id=401631===============================================================================在交叉编译的时候我们需要用到其他的库,在config时候可以
2009-05-05 13:26:00
3582
转载 使用DProf测定程序执行效率
代码写多了,程序就会变得臃肿;程序臃肿了,就会变慢。这时提高代码执行效率就非常重要了。但是,代码优化并不是几条best practice就能完成的。那些无关痛痒的空间分配、减少复制等优化措施,虽然有效,但却微乎其微。优化的关键,是要找出瓶颈并解决之,这样才能以最小的代价获得最佳的效果。这就用到Perl的一个强大的工具:DProf。它可以测定程序执行的每个函数所花费的时间,通过它,你可以迅速
2009-04-27 14:11:00
583
转载 DP动态规划解矩阵中最小路径(动态规划学习之二) z
动态规划:动态规划所处理的问题是一个多阶段决策问题,一般由初始状态开始,通过对中间阶段决策的选择,达到结束状态。这些决策形成了一个决策序列,同时确定了完成整个过程的一条活动路线(通常是求最优的活动路线),一般要经过以下几个步骤: (1)划分阶段:按照问题的时间或空间特征,把问题分为若干个阶段。在划分阶段时,注意划分后的阶段一定要是有序的或者是可排序的,否则问题就无法求解。 (2
2009-03-25 09:18:00
1069
转载 DP动态规划解三角最大路径(动态规划学习之一) z
题:图示出了一个数字三角形,请编一个程序,计算从顶至底的某处的一条路劲,使该路劲所经过的数字的总和最大。 图如下: 7 3 8 8 1 0 2 7 4 44 5 2 6 5(1) 每一步可沿左斜线向下或右斜线向下; (2) 1<三角形行数≤100; (3) 三角形中的数字为0,1,……99。 输入数据: 由INPUT.TXT文件中首先读到的是三角形的
2009-03-25 09:15:00
1035
1
转载 两个经典面试题1248码,漂亮的二进制思想 z
1.你让工人为你工作7天,回报是一根金条,这个金条平分成相连的7段,每天结束的时候,工人会向你要一段金条。如果只允许你两次把金条弄断,你如何给你的工人付费? 2.有1000个苹果,将它们放在100个箱子里,怎么放才能让我向你要苹果的时候,你都能整箱整箱的给我,你的给法是否唯一? 这两个题目我想很多人都曾做过,如果你会做第一个题目,那你也应该会做第二个...如果不会,请看文章标题的
2009-03-25 09:14:00
1851
转载 VI的简单配置及配置文件集锦 z
对于UNIX/linux初学者来说,在用VI来写程序的时候,总是发现不如WINDOWS下面的那些专业的文本编辑器那样高亮关键字,自动对齐等等...其实我们只要对VI进行一些简单的配置,即可实现很多美妙的功能,通过下面的配置,你就会发现,VI的灵活性几乎超乎于你的想象... 一般来说,我们可以在当前用户的根目录下创建一个.vimrc的隐藏文件(当然,也可以不隐藏,看个人的习惯),方法如
2009-03-25 09:09:00
2202
转载 网上一道微软试题"称球问题"求解 z
12个球一个天平,现知道只有一个和其它的重量不同,问怎样称才能用三次就找到那个球。13个呢? 答案:分别定义球为a b c d, e f g h, i j k l,取出abcd, efgh 第一种情形: 如果重量相等,则说明所求在 ijkl 中, 称量 i j , 如果相等,比较 a k ,如果a=k,则所求为 l ;如果ak不等,则所求为 k 。 如果不等,比较
2009-03-25 09:07:00
516
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人