自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

jixingzhong的专栏

星辰·选择了远方,只有风雨兼程

转载 16GB内存神奇玩法大全【@电脑报】

去年的内存价格还高高在上,为了节省预算很多消费者在配机时都只购买2GB内存,不过到了今年年初,内存的价格就开始有所松动,终于在五六月的时候,内存价格出现了比较明显的下滑,自此一泻千里……如今,单条4GB DDR3 1333内存的价格跌近100元,很多消费者在配机时都会直接选择两条

2011-09-09 04:53:26 3237 1

原创 2008 CSDN中国软件技术英雄会

    很荣幸,能够再一次参与这样的盛会!    在出发之前,看过天气预报,得知会议期间正好北京降温。我就想,难不成是CSDN的大大们为了进一步烘托大会的气氛,故意(不是?那就是有意的!)让气温低点?只是,不知道什么时候这些大大们能量如此之大了?    28号,到达宾馆的时候,已经来了不少人,见到了不少的老面孔。虽说时隔一年,联系颇少,却依然记忆深刻,大家很快便聊开,话题广泛,但是最多的自然是

2008-03-30 20:28:00 2901 8

原创 "浏览文件夹"选择对话框

    CFileDialog是打开/保存文件对话框,但是无法用于文件夹的选取。要选择文件夹,可以使用API SHBrowseForFolder,但是这个函数在MFC中没有提供封装类。示例操作如下:// 调用 SHBrowseForFolder 取得目录(文件夹)名称// 参数 hWnd: 父窗口句柄// 参数 lpTitle: 窗口标题CString BrowseFolder(HWND 

2007-11-22 09:49:00 1523

原创 在Console工程中引用CString

CString 是封装的非常不错的一个类,相比于STL的string,它提供了更加丰富的成员方法。虽然在控制台工程中,string基本已经能够完成需要的功能,但是,如果能够偷懒一下的话 ...在Console工程中引用CString方法如下:    1. 工程设置: project/setting/General/中,        把not using mfc改为usimg mfc in a

2007-11-22 09:09:00 5179 2

原创 enum 的范围与size

 一、enum的取值范围 C++标准规定超出枚举类型表示范围的赋值结果是undefined的。 enum的取值范围和 int 的范围并不是直接一致的。计算enum的取值范围,可以按如下方式操作: 1、不考虑负数:获取enum中的最大值,根据这个最大值所具有的位数,可以计算enum的表示范围。 举个例子:enum test{ a=2, b=4 };最大值为4,二进制表示为100,3bits,因为

2007-11-10 12:10:00 10417 1

原创 C99与C89比较,新增特性内容

    1、增加restrict指针C99中增加了公适用于指针的restrict类型修饰符,它是初始访问指针所指对象的惟一途径,因此只有借助restrict指针表达式才能访问对象。restrict指针指针主要用做函数变元,或者指向由malloc()函数所分配的内存变量。restrict数据类型不改变程序的语义。如果某个函数定义了两个restrict指针变元,编译程序就假定它们指向两

2007-11-10 11:55:00 6196 7

原创 时间和日期操作

一. 几个基本概念介绍:Coordinated Universal Time(UTC):协调世界时,又称为世界标准时间,也就是大家所熟知的格林威治标准时间(Greenwich Mean Time,GMT)。比如,中国内地的时间与UTC的时差为+8,也就是UTC+8。美国是UTC-5。Calendar Time:日历时间,是用“从一个标准时间点到此时的时间经过的秒数”来表示的时间。这个标准时间点

2007-11-10 10:56:00 1362

原创 成员函数指针和其他类型的强制转换,使用一般指针调用成员函数

 成员函数指针和其他类型之间的转换,参见如下示例:class test...{public:    void t()...{};};typedef   void   (test::*pMemFnction)(); int main()...{    pMemFnction   method = &test::t;     //成员函数指针定义并初始化    int method_ptr  

2007-11-09 12:42:00 4482 1

原创 正则表达式

      正则表达式(regular expression)就是用一个“字符串”来描述一个特征,然后去验证另一个“字符串”是否符合这个特征。比如 表达式“ab+” 描述的特征是“一个 a 和 任意个 b ”,那么 ab, abb, abbbbbbbbbb 都符合这个特征。    正则表达式可以用来:(1)验证字符串是否符合指定特征,比如验证是否是合法的邮件地址。(

2007-11-08 15:02:00 1252

原创 指定元素初始化

在 C99 中另一个新的特性称之为指定性初始化. 指定性初始化使你能够初始化特定的数组元素而无需初始化整个数组. 假设你有一个具备5个元素地数组,而你需要仅仅初始化第2,4个元素, 并且将其他元素保持未初始化. 在 C++ 和 C89, 你不能这样做. 但是, C99 定义如下句法构造:int arr[5]={[1]=10,[3]=20}; /*designated initializers*

2007-11-05 09:11:00 1275

原创 灵活/弹性数组成员--结构体中0个元素的数组

看这个结构体的定义:typedef struct st_type{     int nCnt;     int item[0];}type_a;(有些编译器会报错无法编译可以改成:)typedef struct st_type{     int nCnt;     int item[];}type_a;    这样我们就可以定义一个可变长的结构,用sizeof(type_a)得到的只有4,就是si

2007-11-05 09:01:00 4545

原创 宽字符处理函数与窄字符处理函数对应表

字符分类:  宽字符函数普通C函数描述 iswalnum()  isalnum() 测试字符是否为数字或字母 iswalpha()  isalpha() 测试字符是否是字母 iswcntrl()  iscntrl() 测试字符是否是控制符 iswdigit()  isdigit() 测试字符是否为数字 iswgraph()  isgraph() 测试字符是否是可见字符 iswlower()  is

2007-11-05 08:52:00 3907 1

原创 C++中的类型强制转换

  C++ 同时提供了四种新的强制转型形式(通常称为新风格的或 C++ 风格的强制转型):       const_cast(expression)       dynamic_cast(expression)       reinterpret_cast(expression)       static_cast(expression)   每一种适用于特定的目的:   ·dynamic

2007-10-31 10:52:00 1464

原创 区分重载(overload),覆盖(Override)和隐藏(hide)

    重载overload,这个概念是大家熟知的。在同一可访问区内被声名的几个具有不同参数列的(参数的类型、个数、顺序不同)同名函数,程序会根据不同的参数列来确定具体调用哪个函数,这种机制就是重载。重载不关心函数的返回值类型,即返回类型不同无法构成重载。此外,C++ 中的const成员函数也可以构成overload。    总结一下重载的特征:  1、处在相同的空间中,即相同的范围内;  2、函

2007-10-31 10:25:00 2827 2

原创 临时对象被const reference, 生命期延长

按标准规定,临时对象可以被const  reference,这里临时对象的生命期将延长。而延长对象生命期的方法没有作规定,由编译器决定。 TC++PL中的描述:A  temporary  created  to  hold  a  reference  initializer  persists  until  the  end  of  its  reference’s  scope.注意到

2007-10-29 15:51:00 1218 1

原创 另类穷举计算24

  /******************************************************************************计算 A 、B、 C、 D四个数据+-*/以及括号运算得到24,可穷举获得各种可行的答案,数据类型使用float。关键在于对 4 数据运算分类,结合数组、函数指针等巧妙使用循环完成穷举:                

2007-10-29 08:22:00 1108 1

原创 10万进制的大数乘方

 /**//***************************************************************************                   程序为计算 x^n, 示例中,x不大于 10000Copyright (C) 2007 jixingzhong. The Institue of Computer System********

2007-10-29 06:41:00 2190 1

原创 用递归改写循环,得到组合

  /*********************************************************************问题:提供若干集合 A、B、C ...,每个集合取其一个元素,形成X个组合。1. 循环方式,  由几个for 遍历即可2. 改写为递归方式,需要做一些精细的控制,细节请看代码所示。**********************************

2007-10-28 20:43:00 1217

原创 构造函数/析构函数中的异常处理

    对于出错处理,在C语言时代,使用的方法就是返回一个错误代码。预定义一系列的代码标识,当发生指定的错误时候,调用过程返回对应该类型错误的代码。    这种方法简单,但是不适合复杂的应用。它会导致若干的问题,比如:    1.质量下降。使用错误代码,那么必然需要在处理中对不同的代码进行分支处理。而分支过程包含错误可能性是其他方式的10倍。消除分支,代码将更加健壮。    2.增加成本。一方面,

2007-10-26 10:50:00 5040

原创 sscanf 函数简介

sscanf与scanf类似,都是用于输入的,只是后者以键盘(stdin)为输入源,前者以固定字符串为输入源。         函数原型:         int   sscanf(   const   char   *format   [,argument]...   );     其中的format可以是一个或多个   {%[*]   [width]   [{h   |   l   |   I

2007-10-26 09:50:00 1200

原创 VC6 STLport-5.1.4 /STLport-4.6.2 编译,安装

VC6 STLport-5.1.4 编译,安装1. 开启命令行窗口,建立VC环境, 执行 %MSVCDir%/VC98/Bin/VCVARS32.BAT2. 切换到 %STLport-5.1.4%/build/lib,执行 configure -c msvc6 -clean, 进行编译配置。其中:     -c 选择编译器     -clean 完成后清除 build configuratio

2007-10-26 09:36:00 1895 1

原创 关于动态内存分配

  动态内存分配方式在很多场合下有着重要的意义。动态分配使得内存的利用效率大大提高,在一些内存受限的情况下显得极为重要。但是动态分配会带来一个问题,如何释放。这个问题的关键就是,在释放的时候,如何获知这块需要释放的内存空间是多少字节的。    在文中,笔者谈到new/malloc 等方式动态分配的内存,除了需要申请的这部分内存大小之外,还有一块cookie(小甜饼),其中保存的就是一些附加的信息。

2007-05-09 13:57:00 1650 2

原创 瞌睡虫情迷上海滩

2007年4月:    14号,一个天气不错的日子,和晨星约好去北京聚聚,同时也和其他的几个好友约好,有狒狒、将军、菜菜、JAVA大牛jFresh_MaN,还有一位前辈人物秃子大哥,呵呵,看到孙大哥真容,无法想象这个外号会和其本人联系在一起。晨星和jFresh_MaN原来就见过,倒也还好,其他几位倒是和我的预期形象差别很大:狒狒比想象中年轻了很多!!我还原以为这个家伙是75年的......狒狒似乎

2007-04-15 19:09:00 1711 11

原创 CSDN 2007软件技术英雄大会

    来到CSDN也有近两年的时间了,一开始,只是灌水、看贴、学习,逐渐开始参与讨论,体会到交流的重要性,慢慢开始活跃在C/C++版块。不想居然收到CSDN邀请,有幸参加CSDN 2007软件技术英雄大会。呵呵,那还用说,一个字,溜!到了5号,偷偷地,开溜了......    5号,出发。ms运气不大好,在机场登机之后,居然收到通知说是航线管制(-_-),没有办法,乖乖的等吧。唉,不想,一等就是

2007-04-11 12:41:00 1801 1

原创 矩阵求逆 转置 行列式

/*矩阵基本运算: 求逆、转置、计算行列式*/#include #include double * MatrixOpp(double *A,int m,int n);     /*矩阵求逆*/double * MatrixInver(double *A,int m,int n);     /*矩阵转置*/double Surplus(double A[],int m,int n);     /*求

2007-01-17 22:12:00 6458 5

原创 日历,求第二天的日期

/*根据输入的日期,计算第二天的日期基本内容都很简单,就不需要多说了。呵呵,很早的一个练习的例子,放这里予以纪念  ^_^*/#include #include int main(){  int y,m,d;  int f, fwrong=0;  printf("y,m,d=");  scanf("%d%d%d",&y,&m,&d); /*输入格式: 1996 2 28, 空格分割数据*/  f=

2007-01-17 22:09:00 1321

原创 二分法

二分法任取两点x1和x2,判断(x1,x2)区间内有无一个实根。如果f(x1)和f(x2)符号相反,说明(x1,x2)之间有一个实根。取(x1,x2)的中点x,检查f(x)与f(x1)是否同符号,如果不同号,说明实根在(x,x1)区间,这样就已经将寻找根的范围减少了一半了。然后用同样的办法再进一步缩小范围。再找x1与x2(x2=x)的中点“x”,并且再舍弃其一半区间。如果f(x)与f(x1)同

2007-01-17 21:57:00 1355

原创 牛顿迭代法

牛顿迭代法 用牛顿迭代法求f(x)=0在x0附近的一个实根的方法是:(1) 选一个接近于x的真实根的近似根x1;(2) 通过x1求出f(x1)。在几何上就是作x=x1,交f(x)于f(x1);(3) 过f(x1)作f(x)的切线,交x轴于x2。可以用公式求出x2。由于f(x1)=f(x1)/(x2-x1),故x2=x1-f(x1)/f(x1)(4) 通过x2求出f(x2);(5) 再过f(

2007-01-17 21:55:00 8468 1

原创 C语言端序

C语言端序Endianism,端序,是指用来存储数据的方法,它定义了数据类型对字节进行寻址的方式。两种端序方式:1、Little-endian,小端序,是将低位字节存储在内存偏移地址较低的地址中,将高位字节存储在内存偏移地址较高的地址中;2、Big-endian,大端序,则是将低位字节存储在内存偏移地址较高的地址中,将高位字节存储在内存偏移地址较低的地址中。比如:0x12345678 在 bi

2007-01-17 21:44:00 2157 3

原创 scanf 妙招

scanf原型:参见《C语言大全》和K&C# include ;int scanf( const char *format, ... ); 函数 scanf() 是从标准输入流 stdin 中读内容的通用子程序,可以读入全部固有类型的数据并自动转换成机内形式。在 C99 中,format 用 restrict 修饰。format 指向的控制串由以下三类字符组成:       ● 格式说明符    

2007-01-07 09:42:00 3883 6

原创 区域表示--Locale 的概念

Locale 是软件在运行时的语言环境, 它包括语言(Language), 地域 (Territory)和字符集(Codeset). 其格式为: 语言[_地域[.字符集]]. 如对中文GBK字符集, locale的格式是:zh_CN.GBK.  Locale 包含了以下分类:   LC_COLLATE, 用于比较和排序. 排序对中文来说也比较重要, 但是现在的 glibc中的

2006-12-28 10:23:00 3774 1

转载 隐藏进程

在WINDOWS操作系统下,当我们无法结束或者不知道怎样结束一个程序的时候,或者是懒得去找“退出”按钮的时候,通常会按“CTRL+ALT+DEL”呼出任务管理器,找到想结束的程序,点一下“结束任务”就了事了,呵呵,虽然有点粗鲁,但大多数情况下都很有效,不是吗?设想一下,如果有这么一种软件,它所要做的工作就是对某个使用者在某台电脑上的活动作一定的限制,而又不能被使用者通过“结束任务”这种方式轻易

2006-12-28 10:10:00 2552 1

转载 C语言实现集合的交,并,差

C语言实现集合的交,并,差作者:Raining_C      来源:http://blog.csdn.net/Raining_CN     【问题描述】         编制一个能演示执行集合的并、交和差运算的程序【基本要求】       (1)集合的元素限定为小写字母字符[ a......z ]       (2 )演示程序以用户和计算机对话的方式执行【测试数据】【实现提示】  

2006-12-28 10:07:00 16081

转载 银行家算法

/* 银行家算法,操作系统概念(OS concepts Six Edition) 作者:ctu_85*/#include "malloc.h"#include "stdio.h"#define alloclen sizeof(struct allocation)#define maxlen sizeof(struct max)#define avalen sizeof(struct availab

2006-12-28 10:06:00 1570

原创 模式匹配之Boyer-Moore算法

 BM 算法是一个较优的模式匹配算法。一般,如果不考虑模式串的长度,一个具有时间复杂度O(n)的算法应该是最优的了,但是事实不是如此。BM算法可以实现更高效率的模式匹配。分析和实验说明,BM匹配算法对于那些字符集比较大,而模式串中出现的字符比较少的时候,工作效率最快。而且,考虑KMP匹配方式的优化,可以结合KMP匹配和BM匹配,进一步提高效率。算法的关键和 KMP 类似,也是构造一个辅助数组,

2006-12-28 10:03:00 2621 4

转载 CString 操作指南

原著:Joseph M. Newcomer翻译:littleloach原文出处:codeproject:CString Management通过阅读本文你可以学习如何有效地使用 CString。  CString 是一种很有用的数据类型。它们很大程度上简化了MFC中的许多操作,使得MFC在做字符串操作的时候方便了很多。不管怎样,使用CString有很多特殊的技巧,特别是对于纯C背景

2006-11-14 10:48:00 2384

转载 VC常用数据类型使用转换

我们先定义一些常见类型变量借以说明int i = 100;long l = 2001;float f=300.2;double d=12345.119;char username[]="女侠程佩君";char temp[200];char *buf;CString str;_variant_t v1;_bstr_t v2;一、其它数据类型转换为字符串短整型(int)itoa(i,tem

2006-11-14 10:47:00 1364

转载 模式匹配的KMP算法详解

这种由D.E.Knuth,J.H.Morris和V.R.Pratt同时发现的改进的模式匹配算法简称为KMP算法。大概学过信息学的都知道,是个比较难理解的算法,今天特把它搞个彻彻底底明明白白。注意到这是一个改进的算法,所以有必要把原来的模式匹配算法拿出来,其实理解的关键就在这里,一般的匹配算法:int Index(String S,String T,int pos)//参考《数据结构》中的程

2006-11-14 10:44:00 4618 1

原创 C99扩展特性

Some features that are in ISO C99 but not C89 or C++ are also, as extensions, accepted by GCC in C89 mode and in C++. 5.1 Statements and Declarations in Expressions     Putting statements and declar

2006-11-14 10:40:00 1217

转载 如何用c语言调用c++做成的动态链接库

如何用c语言调用c++做成的动态链接库:链接库头文件://head.hclass A{        public:        A();        virtual ~A();        int gt();        int pt();private:        int s;};.cpp//firstso.cpp#include #include "head.h"A

2006-11-14 10:34:00 2337 6

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