C++
文章平均质量分 65
javatalk
这个作者很懒,什么都没留下…
展开
-
析构函数的奥秘
析构函数的奥秘作者:王咏武提交者:eastvc 发布日期:2003-7-12 20:02:45原文出处:http://www.contextfree.net/wangyw/deconstr.htm请看如下一段代码:class A {public:A () { pValue = new int[100]; printf("Constructor of A/n"); }~A () { delete [转载 2007-04-05 18:58:00 · 497 阅读 · 0 评论 -
最小堆/哈希表/二叉树/平衡二叉树/红黑树的意义(什么情况下使用)
接触堆数据结构是在排序里面讲的,空间复杂度O(1),时间复杂度O(NlogN),但是在实践中还是不如快速排序(好像快速排序可以更好的利用硬件特性)。堆的意义就在于:最快的找到最大/最小值,在堆结构中插入一个值重新构造堆结构,取走最大/最下值后重新构造堆结构 其时间复杂度为O(logN),而其他方法最少为O(N).堆实践中用途不在于排序,其主要用在调度算法中,比如优先级调度,每次取优先级最高的转载 2007-05-15 10:44:00 · 1320 阅读 · 0 评论 -
宽字符处理函数函数与普通函数对照表
字符分类: 宽字符函数 普通C函数 描述 iswalnum()原创 2007-05-18 13:00:00 · 1898 阅读 · 0 评论 -
C++字符串完全指南(2) - 各种字符串类(一)
C++字符串完全指南(2) - 各种字符串类(一)翻译:连波 19/11/2002 URL: http://www.zdnet.com.cn/developer/tech/story/0,2000081602,39098621,00.htm 前言C语言的字符串容易出错,难以管理,并且往往是黑客到处寻找的目标。于是,出现了许多字符串包装类。可惜,人们并不很清楚什么情况下该用哪个类,也转载 2007-05-18 13:10:00 · 580 阅读 · 0 评论 -
C++字符串完全指南(2) - 各种字符串类- CRT类
C++字符串完全指南(2) - 各种字符串类- CRT类翻译:连波 20/11/2002 URL: http://www.zdnet.com.cn/developer/tech/story/0,2000081602,39098682,00.htm_bstr_t 字符串包装类我已经说明了字符串的各种类型,现在讨论包装类。对于每个包装类,我都会说明它的对象构造过程和如何转换成C类转载 2007-05-18 13:10:00 · 559 阅读 · 0 评论 -
C++字符串完全指南(2) - 总结
C++字符串完全指南(2) - 总结翻译:连波 23/11/2002 URL: http://www.zdnet.com.cn/developer/tech/story/0,2000081602,39099061,00.htm 字符串类的打印格式函数对字符串包装类使用printf()或其它类似功能的函数时要特别小心。包括sprintf()函数及其变种,以及TRACE 和ATLTRA转载 2007-05-18 13:11:00 · 692 阅读 · 0 评论 -
C++字符串完全指南 - Win32字符编码(一)
C++字符串完全指南 - Win32字符编码(一) 前言字符串的表现形式各异,象TCHAR,std::string,BSTR等等,有时还会见到怪怪的用_tcs起头的宏。这个指南的目的就是说明各种字符串类型及其用途,并说明如何在必要时进行类型的相互转换。在指南的第一部分,介绍三种字符编码格式。理解编码的工作原理是致为重要的。即使你已经知道字符串是一个字符的数组这样的概念,也请阅读本文转载 2007-05-18 13:08:00 · 835 阅读 · 0 评论 -
C++字符串完全指南(2) - MFC类
C++字符串完全指南(2) - MFC类翻译:连波 22/11/2002 URL: http://www.zdnet.com.cn/developer/tech/story/0,2000081602,39098983,00.htmMFC类 MFC类CStringMFC的CString含有TCHAR,它的实际字符类型取决于预处理标记的设置。通常,CString象STL字符串转载 2007-05-18 13:11:00 · 778 阅读 · 0 评论 -
C++字符串完全指南 - Win32字符编码(二)
C++字符串完全指南 - Win32字符编码(二)翻译:连波 15/11/2002 URL: http://www.zdnet.com.cn/developer/tech/story/0,2000081602,39098306,00.htm Win32 API中的MBCS 和 UnicodeAPI的二个字符集也许你没有注意到,Win32的API和消息中的字符串处理函数有二种,一转载 2007-05-18 13:09:00 · 821 阅读 · 0 评论 -
一个跨平台的 C++ 内存泄漏检测器
2004 年 3 月 01 日基本使用内存泄漏对于C/C++程序员来说也可以算作是个永恒的话题了吧。在Windows下,MFC的一个很有用的功能就是能在程序运行结束时报告是否发生了内存泄漏。在Linux下,相对来说就没有那么容易使用的解决方案了:像mpatrol之类的现有工具,易用性、附加开销和性能都不是很理想。本文实现一个极易于使用、跨平台的C++内存泄漏检测器。并对相关的技术问题作一下转载 2007-11-18 11:01:00 · 542 阅读 · 0 评论 -
搜索技术总结整理
学习搜索有一段时间了,为了复习巩固和提高,特把学习的结果总结一下。本文章搜索只特指小型搜索系统。之所以特指是小型系统,是因为大型小型搜索系统虽然整体处理过程大体相似,但整体架构和要处理的数据量和响应速度是密切相关的,百万量级的和十亿量级的搜索系统是不可同日而语的。搜索系统处理大体分为:蜘蛛、切词、索引、检索,下面逐个的描述。1. 蜘蛛蜘蛛是用来抓取网页的。所谓的抓,其实也就是通过soc转载 2007-11-29 13:04:00 · 881 阅读 · 0 评论 -
中文机械分词算法入门
这几天因为要负责新的搜索系统中的分词,所以看了一些入门级的分词算法。其中主要是机械分词方法,趁这个机会总结下。机械分词方法又叫基于字符串匹配的分词方法,它是按照一定的策略将待分析的汉字串与一个“充分大的”机器词典中的词条进行区配,若在词典中找到某个字符串,则匹配成功(识别出一个词)。按照扫描方向的不同,串匹配分词方法可以分为正向匹配和逆向匹配;按照不同长度优先匹配的情况,可以分为最大(最长)匹转载 2007-11-29 13:01:00 · 3103 阅读 · 0 评论 -
数据结构专项之Hash函数
计算理论中,没有Hash函数的说法,只有单向函数的说法。所谓的单向函数,是一个复杂的定义,大家可以去看计算理论或者密码学方面的数据。用“人类”的语言描述单向函数就是:如果某个函数在给定输入的时候,很容易计算出其结果来;而当给定结果的时候,很难计算出输入来,这就是单项函数。各种加密函数都可以被认为是单向函数的逼近。Hash函数(或者成为散列函数)也可以看成是单向函数的一个逼近。即它接近于满足单转载 2007-11-29 12:58:00 · 576 阅读 · 0 评论 -
中文搜索引擎之文本分类
中文搜索引擎之文本分类 2007/06/04 作者:Kelvin from Hour41 (www.hour41.com )文本分类就是根据预先定义的主题类别,按照一定的规则将文档集合中未知类别的文本自动确定一个类别,涉及数据挖掘、计算语义学、信息学、人工智能等个学科,是自然语言处理的一个重要应用领域。 目前,越来越多的统计分类方法、机器学习方法、数据挖掘技术和其它的新技术被应用转载 2007-11-29 13:07:00 · 2482 阅读 · 0 评论 -
分析一个好玩的c语言程序
#include int main(){ const short int c1 = 49920; const int c2 = 1073742008; int (*pf)() = (int (*)())&c2; printf("%c%c/n", *(char*)pf()-19, *((char*)pf()+1)-49); return 0; }运行这个程序,屏幕转载 2007-12-09 23:17:00 · 1464 阅读 · 0 评论 -
C++ 宏收录
##宏,用于连接参数#define LINK_ME(a,b,c) a##_##b##_##c##LINK_ME(you,are,foo) 结果为 you_are_foo #@将其后面的宏参数进行字符化。#define TO_CHAR(x) #@xchar a = TO_CHAR(b); //a = b; #加参数,字符串化参数#define WARN_IF(原创 2009-06-04 23:53:00 · 350 阅读 · 0 评论 -
內存分析
情感受了傷害,寫點技術貼吧,不能總是記錄些憂傷的事。最近一直在分析項目的內存洩露,內存使用情況。老大說,內存與CPU一定要控制住。好吧,一個客戶端程序,也這麼有要求,也只能在這方面給點力了。先解決內存問題吧。先查洩露,怎麼查。boundcheck?還沒用過呢。原创 2011-07-31 03:18:36 · 987 阅读 · 2 评论 -
LPTSTR、LPCSTR、LPCTSTR、LPSTR的意义
UNICODE:它是用两个字节表示一个字符的方法。比如字符A在ASCII下面是一个字符,可A在UNICODE下面是两个字符,高字符用0填充,而且汉字程在ASCII下面是两个字节,而在UNICODE下仍旧是两个字节。UNICODE的用处就是定长表示世界文字,据统计,用两个字节可以编码现存的所有文字而没有二义。 MBCS,它是多字节字符集,它是不定长表示世界文字的编码。MB转载 2007-05-13 20:12:00 · 773 阅读 · 0 评论 -
搞清楚VC++中的char,wchar_t,TCHAR
大家一起做一个项目,经常发现有的人爱用strcpy等标准ANSI函数,有的人爱用_tXXXX函数,这个问题曾经搞的很混乱。为了统一,有必要把来龙去脉搞清楚。 为了搞清这些函数,就必须理请几种字符类型的写法。char就不用说了,先说一些wchar_t。wchar_t是Unicode字符的数据类型,它实际定义在里: typedef unsigned short wchar_t;不能使用类似strc转载 2007-05-13 20:10:00 · 784 阅读 · 0 评论 -
VC常用数据类型使用转换详解
刚接触VC编程的朋友往往对许多数据类型的转换感到迷惑不解,本文将介绍一些常用数据类型的使用。 我们先定义一些常见类型变量借以说明 int i = 100; long l = 2001; float f=300.2; double d=12345.119; char username[]="女侠程佩君"; char temp[200]; char *buf; CString str; _varian转载 2007-04-05 19:07:00 · 602 阅读 · 0 评论 -
如何有效地进行运算符重载 (选择自 vcmfc 的 Blog )
重载运算符将使代码更清晰-只在合理使用它们. by Bill Wagner 译者:黄森堂(vcmfc) C++初学者(特别是从其他语言“叛逃”而来的)往往视运算符重载为一大绊脚石,害怕改变内建运算符的原意(参阅“What is Operator Overloading?”)。殊不知,这却能使得代码清晰,比如"C=A+B"和"C.assign(A.plus(B))",您更喜欢哪一个呢?若转载 2007-04-03 00:44:00 · 1583 阅读 · 0 评论 -
C++ 的++i 与 i++
收的一篇文章:////////////////////////////////////////////////////////////////////for ( int i = 0; i { /* ………… */ }但是很少有人想过代码背后隐藏的问题。读过STL源代码的人,都会对下面的代码一定很熟悉。 template inline _OI copy( _II _F, _II _L, _OI _X转载 2007-04-03 00:42:00 · 723 阅读 · 0 评论 -
找到单向链表中间那个元素
找到单向链表中间那个元素,如果有两个则取前面一个----使用两个游标,一个步长为1,另一个步长为2,当步长为2的游标达到尾结点时,步长为1的游标所在的结点就是中间的结点。原创 2007-04-04 13:32:00 · 1976 阅读 · 1 评论 -
可变参数
一、什么是可变参数 我们在C语言编程中有时会遇到一些参数个数可变的函数,例如printf()函数,其函数原型为: int printf( const char* format, ...); 它除了有一个参数format固定以外,后面跟的参数的个数和类型是可变的(用三个点“…”做参数占位符),实际调用时可以有以下的形式: printf("%d",i); p转载 2007-04-07 16:34:00 · 613 阅读 · 0 评论 -
int offset = (int)(t*)1 - (int)(singleton *)(t*)1
看到一段ogre的原码看到在sigleton.h中的 int offset = (int)(t*)1 - (int)(singleton *)(t*)1;这段看不明白请各位高手指点8,9。 下面是原码: namespace ogre { template class singleton原创 2007-07-10 23:59:00 · 1916 阅读 · 0 评论 -
关于指针??二维数组讨论
概括的说,指针其实就是可变数组的首地址,说是可变数组,是 指其包含内容的数量的可变的,并且是可动态申请和释放的,从而充 分节约宝贵的内存资源。我一向喜欢一维数组,除非万不得已,我一 般是不用二维数组的,多维的则更是很少涉足了。因为一维简单,容 易理解,而用指针指向的多维数组就具有相当的复杂性了,也因此更 具有讨论的必要。 闲话少说,这里我就以三个二维数组的比较来展开讨论: (1)、转载 2007-04-13 01:15:00 · 521 阅读 · 0 评论 -
extern "C"
extern "C" xaosting 发表于 2006-4-转载 2007-04-14 13:10:00 · 449 阅读 · 0 评论 -
sscanf函数的高级用法
大家都知道sscanf是一个很好用的函数,利用它可以从字符串中取出整数、浮点数和字符串等等。它的使用方法简单,特别对于整数和浮点数来说。但新手可能并不知道处理字符串时的一些高级用法,这里做个简要说明吧。 1. 常见用法。以下是引用片段: char str[512] = {0}; sscanf("123456 ", "%s", str); printf("str=%s/n", s原创 2007-04-15 10:16:00 · 1489 阅读 · 0 评论 -
谁动了我的指针
本文介绍了一种在调试过程中寻找悬挂指针(野指针)的方法,这种方法是通过对new和delete运算符的重载来实现的。 这种方法不是完美的,它是以调试期的内存泄露为代价来实现的,因为文中出现的代码是绝不能出现在一个最终发布的软件产品中的,只能在调试时使用。 在VC中,在调试环境下,可以简单的通过把new替换成DEBUG_NEW来实现功能更强更方便的指针检测,详情可参考MSDN。DEBUG_转载 2007-04-15 10:21:00 · 474 阅读 · 0 评论 -
为C++标准库容器写自己的内存分配程序
根据sgi 的STL源码的二级分配算法改写的内存池分配程序,只要稍微修改就可以实现共享内存方式管理,使用C++标准库容器中的map,set,multimap,multiset测试通过,vector测试通不过,原因是在内存回收的时候考虑的比较简单,vector每次分配内存个数不固定,回收也不固定,这样的话,程序还需要继续完善。 内存池管理程序源码如下:以下是引用片段:转载 2007-04-15 10:23:00 · 532 阅读 · 0 评论 -
汇编函数调用堆栈变化分析
跟一个朋友谈堆栈的时候 就写下了这段文字,顺便发到这里给需要的看看吧汇编初学者比较头痛的一个问题////////////////////////////////////////////////////////////////////比如 我们有这样一个C函数#includelong test(int a,int b){ a = a + 1; b = b + 100; return转载 2007-04-15 10:17:00 · 1013 阅读 · 0 评论 -
正确处理unresolved external symbol _main的Link错误
在创建MFC项目时, 不使用MFC AppWizard向导, 如果没有设置好项目参数, 就会在编译时产生很多连接错误, 如error LNK2001错误, 典型的错误提示有: libcmtd.lib(crt0.obj) : error LNK2001: unresolved external symbol _main LIBCD.lib(wincrt0.obj) : error LNK2001:转载 2007-04-15 20:03:00 · 914 阅读 · 0 评论 -
神秘的文件结束到底是什么判断出来的?
我用文本形式打开了一个文件,在文件中段有一部分二进制码,我使用的是fistream.eof()作为文件结束的判断,但是文件在读到那段二进制码时就认为整个文件结束了,我想应该是那段二进制码出现了文件结束的标志符,于是我有以下几个问题:1.看到有文章说,对二进制文件必须使用二进制形式打开,并且使用feof()来判断。但是我的文件基本上是文本形式,只有一小段二进制码,我使用的是一行一行的处理形式,用二进转载 2007-05-14 02:27:00 · 6900 阅读 · 0 评论 -
解决头文件相互包含问题的方法----超前引用- -
解决头文件相互包含问题的方法----超前引用- - 所谓超前引用是指一个类型在定义之前就被用来定义变量和声明函数。 一般情况下,C/C++要求所有的类型必须在使用前被定义,但是在一些特殊情况下,这种要求无法满足,例如,在类CMyView中保留了一个非模式对话框对象指针,该对象用于显示/修改一转载 2007-05-15 21:26:00 · 844 阅读 · 0 评论 -
VC中#pragma warning指令
该指令允许有选择性的修改编译器的警告消息的行为指令格式如下:#pragma warning( warning-specifier : warning-number-list [; warning-specifier : warning-number-list...]#pragma warning( push[ ,n ] )#pragma warning( pop )主要用到的警告表示有如下几个转载 2007-05-14 16:31:00 · 718 阅读 · 0 评论 -
const和static
基本解释 const是一个C语言的关键字,它限定一个变量不允许被改变。使用const在一定程度上可以提高程序的健壮性,另外,在观看别人代码的时候,清晰理解const所起的作用,对理解对方的程序也有一些帮助。 虽然这听起来很简单,但实际上,const的使用也是c语言中一个比较微妙的地方,微妙在何处呢?请看下面几个问题。 问题:const变量 & 常量 为什么我象下面的例子一样用一个const转载 2007-05-14 16:42:00 · 2014 阅读 · 1 评论 -
原来我的真的很脆弱
今天又九点多醒来了,可能是昨天开心,导致今天兴奋吧,醒了后睡不着开QQ,开POPO,开RC,她不在,或者她还没醒吧12点了,她仍不在线两点多了,她还没上线四点多了,头像仍然是黑的她去找他了吗发短信问她好吗不知不觉自己睡着了,醒来时已经6点了,她已经在线了。没敢问她今天是不是出去了,只是发了一个笑脸表情。她告诉我,她今天睡了一整天。是真的吗?没有出去找他吗?不是跟我说原创 2011-09-26 00:45:38 · 1289 阅读 · 0 评论