C/C++
文章平均质量分 71
Realdodo
这个作者很懒,什么都没留下…
展开
-
Words could not be used in C++
C++ Keywords asm do if return try auto double inline short typedef bool dynamic_cast int signed typeid原创 2006-09-09 11:23:00 · 1272 阅读 · 0 评论 -
用ISAPI实现URL转向
昨天做项目做的比较郁闷,突然就想起来域名转向的问题,于是就去MSDN查了一下资料,发现ISAPI可以方便的实现这一功能。嗯,首先还是要说说怎么个域名转向。打个比方,如果我现在有realdodo.com这个域名,那么我如果想同时拥有www.realdodo.com和 blog.realdodo.com就需要两个独立的IP。然而这实在是一件很麻烦的事情,毕竟IP还是很稀缺的资源。于是有一个替代方案,那原创 2006-06-26 20:47:00 · 2460 阅读 · 4 评论 -
程序设计:座位调整
5.座位调整 百度办公区里到处摆放着各种各样的零食。百度人力资源部的调研发现,员工如果可以在自己喜欢的美食旁边工作,效率会大大提高。因此,百度决定进行一次员工座位的大调整。调整的方法如下:1.首先将办公区按照各种零食的摆放分成N个不同的区域(例如:可乐区,饼干区,牛奶区等等);2.每个员工对不同的零食区域有不同的喜好程度(喜好程度是1~100的整数, 喜好程度越大表示该员工越希望被原创 2006-05-28 22:25:00 · 2070 阅读 · 4 评论 -
程序设计:变态比赛规则
3.变态比赛规则 为了促进各部门员工的交流,百度举办了一场全公司范围内的“拳皇”(百度内部最流行的格斗游戏)友谊赛,负责组织这场比赛的是百度的超级“拳皇”迷W.Z。W.Z不想用传统的淘汰赛或者循环赛的方式,而是自己制定了一个比赛规则。由于一些员工(比如同部门或者相邻部门员工)平时接触的机会比较多,为了促进不同部门之间的交流,W.Z希望员工自由分组。不同组之间的每两个人都会进行一场友谊赛而同原创 2006-05-28 22:21:00 · 1939 阅读 · 0 评论 -
参加百度之星程序设计大赛有感
题目起的很俗……反正参加完了以后就是有些感受了。首先是认识到自己在算法方面是多么的没有经验。8个小时,我一直在Think/Code/Debug,但是Think的时间实在显得太长。当我想到一种算法,到最终实现成代码,之间总会花费很多很多时间,感觉非常手生。原来听说ACM一般是不申请内存的,这次参赛,对这句话有了一定了解。由于没有太多时间考虑软件架构,而且程序本身不需要非常高的容错性,多线程的问题更不原创 2006-05-28 22:46:00 · 3254 阅读 · 5 评论 -
程序设计:百度语言翻译机
1.百度语言翻译机 百度的工程师们是非常注重效率的,在长期的开发与测试过程中,他们逐渐创造了一套独特的缩略语。他们在平时的交谈、会议,甚至在各种技术文档中都会大量运用。为了让新员工可以更快地适应百度的文化,更好地阅读公司的技术文档,人力资源部决定开发一套专用的翻译系统,把相关文档中的缩略语和专有名词翻译成日常语言。输入要求:输入数据包含三部分:1. 第一行包含一个整数N(N原创 2006-05-28 22:18:00 · 1980 阅读 · 3 评论 -
“Hello world!”的N种写法
在初学一门编程语言的时候,写一个“Hello world!”程序是最常见的入门方法。通过写一个成功的“Hello world!”,可以实践这门语言最基本的语法特性,还可以带给自己成就感,真是一举两得。C/C++语言本身有很多特性,如果能够将这些技术分解出来变成一个个的“Hello world!”,并且将这些技术点到为止,貌似也算是一件善事。这里,列举了10个“Hello world!”程序,大家雅原创 2006-05-25 09:42:00 · 3525 阅读 · 6 评论 -
C++中的property库的设计与实现过程(五)(第一部完)——为属性加入访问控制
前面已经讲最最基本的property框架构建了出来,现在还缺少的是访问控制的功能,也就是实现只读或者只写的property。说到这里,其实思路已经很清楚,既然要确定访问权限,那也就是限制property的访问者能够直接或间接调用的函数,最简单的作法当然就是通过模板特化来实现。例如,我们要先要实现read_write和read_only:namespace rdxLib ...{ te原创 2006-09-22 23:58:00 · 2766 阅读 · 0 评论 -
C语言中的小技巧
看看下面一段程序的功能:/* TestRCUnit.cpp : 定义控制台应用程序的入口点。*/#include typedef void (*__CUNIT_TEST_CASE_FUNC_TYPE)();/*! /brief 测试用例链表结点。 存储测试用例的函数指针和测试用例的名字。 */typedef struct __tagCUnitTestCaseListNode{ stru原创 2006-05-05 22:43:00 · 1335 阅读 · 2 评论 -
C++中的property库的设计与实现过程(四)——消除讨厌的warning C4355
接下来应该是给property_bag写大量的操作符重载了……唔,稍微等等,怎么总是有一个warning消不掉呢?就是下面这个(使用VS 2005):warning C4355: this : used in base member initializer list 这个C4355是没有办法简单消除的,除非不用this,但又不可能,因为我property_bag的构造函数需要用到父类的原创 2006-09-14 21:59:00 · 4571 阅读 · 1 评论 -
C++中的property库的设计与实现过程(三)——将对象封装到property里面
有了get和set,那么将get和set 的具体内容(也就是那个用于返回真正值的对象)放在哪里比较好呢?一开始,我觉得学习其他语言的那种方式不错,即把property作为一个纯粹的接口来调用,所有的东西都定位到get和set函数中去。但是,为了实现默认的get或set,方便的从一个简单的公有变量向一个受管制的property转换,我觉得说不定把内容放到property里面是一个好主意(当然也不一定原创 2006-09-14 17:47:00 · 2153 阅读 · 1 评论 -
再续:增强boost中function_traits的能力
关于这个问题,John Maddock老大在新闻组里面给出了很详细的解答,虽然我还有些问题要问,不过得好好组织一下怎么说才行……可不要浪费网络资源哈~主要意思是,对于成员函数traits而言,一方面有const和volatile的麻烦事情,另一方面又有一个隐含的this参数不好处理(究竟是算一个入口参数还是不算?),最重要的是这种应用需求完全可以用其他方式替代。所以,John认为没有必要实现这样的原创 2006-09-12 14:52:00 · 1951 阅读 · 1 评论 -
增强boost中function_traits的能力
boost的type_traits功能相当强大,特别是function_traits,能够辅助做很多事情。但是美中不足,function_traits竟然没有针对成员函数做任何的traits提取,似乎有些缺憾。我在boost 1.33基础上修改了boost/type_traits/function_traits.hpp的内容,增强其中的功能,希望能够暂时弥补一下这个遗憾。以下就直接贴代码了,在Be原创 2006-09-09 23:31:00 · 2645 阅读 · 0 评论 -
C++中的property库的的使用方法
由于代码还没有整理,大量的特化和偏特化散乱在代码里,所以我就暂时不发布源码了,不过这是迟早的事情,呵呵。先来说说怎么用吧,个人觉得还是蛮有意思的。以下是可读写属性的声明方法:#include rdx/property.h>class TestProperty...{ typedef TestProperty MyType;public: int set_X(int value)原创 2006-09-13 11:25:00 · 6140 阅读 · 3 评论 -
C++中的property库的设计与实现过程(二)——如何为属性指定get_和set_函数?
好了,现在就开始真正实现这个property库。我不打算一开始就把自己现有实现全盘托出,我希望记录整个设计的过程,这样,说不定在写这些文章的同时我还能找到进一步优化这个库的方法。首先来想想,这个类应该怎么定义才好。设想有这么一个类Sample,其中有一个属性X,那么代码可能要写成这样:class Sample...{ int x_; // Is it necessary?publi原创 2006-09-13 10:33:00 · 2810 阅读 · 3 评论 -
C++中的property库的设计与实现过程(一)
虽然现在很忙,有很多事情要做,但是脑子里总在想一些稀奇古怪的事情而停不下来。比如说这个property,就是我最近睡觉前想的最多的东西。特别是前几天,不小心被关在实验室没法出去只好在这里睡觉,睡觉前又想到这个property,于是手痒,动手真的把粗糙的想法实现了一遍。在说如何实现之前,首先应该说说什么是property,以及为什么要做这么一个东西。property首先应该是Borland C++引原创 2006-09-12 23:22:00 · 3356 阅读 · 10 评论 -
续:增强boost中function_traits的能力
上一篇说过,在function_traits里面加入成员函数类型traits的工作纯粹是体力活,那么原作者没有理由“忽略”这个方面——毕竟他已经做了绝大多数的体力活,这个type_traits库就是大智慧和大工作量“完美结合”的产物。 那么,why not?就这个问题我专门写信给作者John Maddock,他的回答让我不太理解了:I dont think this is quite t原创 2006-09-12 01:30:00 · 1630 阅读 · 0 评论 -
获得全局函数和成员函数指针的部分traits的方法
全局函数和成员函数指针不是类型,而是一种变量,虽然它们在本质上有很多区别,但是从模板的角度来说,却是非常类似的。那么如何尽可能的获取它们的traits呢?就这个问题,我做了一些简单的研究,所有的编译结果基于VS.net 2005。 首先,我们不可能用类模板来提取traits信息,也就是说,这种traits手法和一般的type_traits不一样,也弱很多。这个的原因是,类模板如果要接受数值原创 2006-09-09 11:28:00 · 1382 阅读 · 0 评论 -
彻底杜绝可恶的缓冲区溢出的问题!
From: http://www.realdodo.com/blog/?id=194缓 冲区溢出是困扰程序员多年的痼疾,特别是使用C语言的程序员,面对毫无保证可言的内存指针,既不能实时检查内存区域的真实大小,也不能避免内存使用者有意 或无意的缓冲区溢出操作,实在是非常的无奈。就算是C++的程序员,其实境遇也好不到哪里去,比如STL里的vector,在使用operator []和迭代器来访问数据成员原创 2007-02-16 16:25:00 · 3369 阅读 · 0 评论