C/C++
文章平均质量分 64
jasonblog
这个作者很懒,什么都没留下…
展开
-
学C++的50条建议
1.把C++当成一门新的语言学习(和C没啥关系!真的。); 2.看《Thinking In C++》,不要看《C++变成死相》; 3.看《The C++ Programming Language》和《Inside The C++ Object Model》,不要因为他们很难而我们自己是初学者所以就不看; 4.不要被VC、BCB、BC、MC、TC等词转载 2010-03-05 10:32:00 · 1387 阅读 · 1 评论 -
关于一道搜索引擎TOP10热点查询
这是网上流传的一道百度笔试题。我也参加过一次百度笔试,也有一道类似的题目,不过数据量更大点,要求稍微多一点,限于笔试时候有要求以后不能泄露题目所以就不具体描述了。 题目:寻找热门查询:搜索引擎会通过日志文件把用户每次检索使用的所有检索串都记录下来,每个查询串的长度为1-255字节。假设目前有一千万个记录,这些查询串的重复度比较高,虽然总数是1千万,但如果除去重复后,不超过3原创 2010-08-19 22:01:00 · 3788 阅读 · 4 评论 -
Way on c & c++ 小记 [一]
标题:那一抹绿色 想来大多数学习C语言的人都是从谭浩强教授那本绿色封面的《C语言程序设计》入门的,我也是其中之一。记得那是在大学入学前,我在泉州九一街十字路口的晓风书屋(后来为风雅颂)买下了那本书。命运的手掌轻轻一抚,就突如其来地使得我选择了计算机专业,这是我所始料不及的。虽然计算机也是我的兴趣,虽然高中时代在家还会津津有味地对着《黑客X档案》或者《电脑爱好者》的VB教程敲个Q原创 2010-01-27 14:44:00 · 1888 阅读 · 1 评论 -
Way on c & c++ 小记 [二]
简单的数据类型?感觉不那么简单。 C语言的数据类型我认为可以划分为3类,分别是空类型void、基本类型(字符型、整型、浮点型和枚举类型)和派生类型(数组、函数、指针、结构体和共用体)。 标准C上规定int类型范围为-32768 ~32767,然而实际上往往并非如此,这取决于编译器的设计,比如下述代码:#include int main(int argc原创 2010-01-27 15:00:00 · 4127 阅读 · 30 评论 -
Way on c & c++ 小记 [三]
继续不简单的数据类型。 昨天没有继续“动笔”,倒是萌发了阅读《东周列国志》的念头,并且看了两章Joel写的《软件随想录》,颇有几分感触。今天再次回到巩固所学的路途上。 在操作系统中,有一种思想或者技术叫“覆盖”,利用的是某个运行时间段内函数(或其它占据内存的载体)不共存的现象。比如在下表中,main可以调用l-fun()或者r-fun(),但不会同时调用二者;同样地原创 2010-01-29 20:20:00 · 1448 阅读 · 3 评论 -
Way on c & c++ 小记 [四]
关于自增运算符的进一步研究。代码:#include int main(int argc,char*argv[]){ int a,b; a = b = 0; b = ++a; b = a++; b++; a = a++; return 0;}反汇编后: b = ++a;000原创 2010-02-04 12:07:00 · 1116 阅读 · 0 评论 -
Way on c & c++ 小记 [五] – 初始化列表与成员函参作用域
初始化列表与成员函参作用域作者:Jason Lee @http://blog.csdn.net/jasonblog日期:2010-04-11 [1]初始化列表所谓初始化列表,从语法角度讲,就是构造函数圆括号后的冒号与左花括号之间的紧跟初始值的变量序列,如下是一个示例:Demo(): b(2), a(b){作为初始化列表,它以它的作用和初始化顺序而出名。原创 2010-04-11 23:58:00 · 1583 阅读 · 0 评论 -
Way on c & c++ 小记 [七] – 重载操作符
重载操作符作者:Jason Lee @http://blog.csdn.net/jasonblog日期:2010-04-17 [1]重载操作符重载操作符从大的方面来讲可以分为两类:最好或必须作为类的成员函数的,以及相反。而具体地讲,最好或必须作为类的成员函数的有赋值操作符( = )、下标操作符( [] )、调用操作符( () )、成员访问箭头操作符( ->,目前列出的操作符原创 2010-04-17 13:35:00 · 2039 阅读 · 0 评论 -
这一段程序会输出什么呢?
今天看到一段程序,忍不住在cygwin下试了一下。为了避免图片不能显示,贴上代码。#include #include void main(int argc){ printf("%d\n", argc); (&main + (&main - &exit) * (argc / 1000))(argc + 1);}这一段程序会输出什么呢?原创 2011-08-11 19:26:08 · 1559 阅读 · 1 评论 -
Way on c & c++ 小记 [八] – 自底向上地探究虚函数
自底向上地探究虚函数作者:Jason Lee @http://blog.csdn.net/jasonblog日期:2010-05-19环境:Visual C++ Express2008声明:本文发表在csdn博客,如有转载,请注明出处 [1]C++对象模型基础一个类中可以包含静态数据成员、静态成员函数、非静态成员函数和非静态数据成员以及虚函数。其中,前三者(原创 2010-05-20 13:50:00 · 1332 阅读 · 0 评论 -
Way on c & c++ 小记 [六] – Rule of Three, 复制控制
Rule of Three, 复制控制作者:Jason Lee @http://blog.csdn.net/jasonblog日期:2010-04-13 [1]复制构造函数copy constructorRule of Three是指类如果需要析构函数,则通常也需要复制构造函数和赋值操作符。而其实习惯地显示编写这三者本就是一个良好的习惯。因为相较于编译器自动生成的代码,显示编写原创 2010-04-14 00:12:00 · 2347 阅读 · 0 评论 -
Win编程笔记:字符串小结
Win编程笔记:字符串小结 JasonLee@http://blog.csdn.net/jasonblog Basics ANSI和Unicode:前者是单字节字符编码,用来表示英语以及一些西欧语言的所有字符;后者是双字节字符编码,可以表示现代计算机涉及的所有字符(包括中文、日文等)。显然,使用Unicode更有利于国际化和本地化。除此之外,Windows所有核心函原创 2011-01-14 17:21:00 · 5048 阅读 · 0 评论 -
关于C++虚析构函数
在上一篇博文《关于C++对象的自杀》末尾提到了基类的虚析构函数,于是再添一篇。 什么时候析构函数需要加个virtual来修饰呢?当要通过指向基类的指针删除子类对象时。 Why?这是为了保证基类和子类的析构函数都得到调用。个人理解:因为基类类型的指针指向的是子类对象中的基类部分,如果析构函数不为虚函数,则无法调用到子类的析构函数。 如下代码:#include原创 2010-11-07 00:56:00 · 3931 阅读 · 1 评论 -
2010.03.12网龙笔试小记
邮箱里的记录是3月8日收到了网龙人力资源部的笔试、面试通知,但我并未注意到,直到3月11日中午接到对方的电话问我下午有没有时间安排去笔试,我才发现。后来和对方说实在太仓促了点,所以改到了今天下午笔试。由此意识到投出简历以后应该每日查看一下邮箱,并且,最好有一个邮箱是专门投放简历的。虽然说改到了隔天,不过真正准备的时间也就两三个小时,因为还和同学打了一下午的球,晚上还被约出去吃了两个小时的夜宵。原创 2010-03-12 18:59:00 · 4569 阅读 · 0 评论 -
Boost智能指针小记
参考资料:http://www.boost.org/doc/libs/1_47_0/libs/smart_ptr/smart_ptr.htm[scoped_ptr]模板类scoped_ptr储存着一个指向动态分配的对象的指针,可以通过reset方法显式释放对象,或者在scoped_ptr的析构函数中释放。Scoped_ptr提供了基本的RAII机制,没有shared-ownership原创 2011-10-27 19:34:13 · 1866 阅读 · 0 评论 -
线性时间求解最大子序列和——HDU1003
Problem DescriptionGivena sequence a[1],a[2],a[3]......a[n], your job is to calculate the maxsum of a sub-sequence. For example, given (6,-1,5,4,-7), the max sum inthis sequence is 6 + (-1) +原创 2010-04-19 18:51:00 · 1315 阅读 · 0 评论 -
ELFhash字符串散列函数——HDU1004
Problem DescriptionContesttime again! How excited it is to see balloons floating around. But totell you a secret, the judges favorite time is guessing the mostpopular problem. When the contes原创 2010-04-19 20:19:00 · 3168 阅读 · 0 评论 -
C语言中三角函数的简单应用——HDU2080
Problem Description这次xhd面临的问题是这样的:在一个平面内有两个点,求两个点分别和原点的连线的夹角的大小。注:夹角的范围[0,180],两个点不会在圆心出现。 Input输入数据的第一行是一个数据T,表示有T组数据。每组数据有四个实数x1,y1,x2,y2分别表示两个点的坐标,这些实数的范围是[-10000,10000]。原创 2010-04-20 23:05:00 · 7652 阅读 · 0 评论 -
HDU1257最少拦截系统
Problem Description某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能超过前一发的高度.某天,雷达捕捉到敌国的导弹来袭.由于该系统还在试用阶段,所以只有一套系统,因此有可能不能拦截所有的导弹.怎么办呢?多搞几套系统呗!你说说倒蛮容易,成本呢?成本是个大问题啊.所以俺就到原创 2010-05-17 20:32:00 · 1809 阅读 · 0 评论 -
HDU1176免费馅饼
这是一道简单的DP问题,所以可以较好地从这道题学习DP。 首先,具有最优子结构的特征。第一秒需要对位置4、位置5和位置6进行选择,我们此时就需要知道通过相应的位置可以获得的最多馅饼数。而要知道位置4可以获得的最多馅饼数,我们就需要在第二秒对位置3、位置4和位置5进行选择时知道分别从这三个位置分别可以获得的最多馅饼数。显然,问题的最优解包含着子问题的最优解,同样也包含着子子问题的最优原创 2010-05-18 00:51:00 · 1309 阅读 · 0 评论 -
HDU1422重温世界杯
其实题目可以理解为:给出循环数字序列,找出最长的和不为负数的子序列,输出该子序列的长度。 #include #include #include using namespace std;int main(){ int cost[100001]; long n,w,l,i; long max, temp, sum, last; while(cin >> n)原创 2010-05-18 20:08:00 · 2271 阅读 · 0 评论 -
不使用第三个变量交换两个int类型变量的值
#include using namespace std;int main(){ //不使用第三个变量交换两个int类型变量的值 int a = 5, b = 10; a = a^b; b = a^b; a = a^b; cout << a << endl << b << endl; a = a + b; b = a - b; a = a - b;原创 2010-05-18 23:03:00 · 2462 阅读 · 0 评论 -
有道搜索框
这一题我第一眼看到就觉得应该是用构架良好的二叉搜索树,后来朋友告诉我直接暴力就可以了,让我汗……不过我还是用红黑树来做了,后来据了解类似的题目貌似应该用Trie Tree:#include #include #include #include #include #include #include #include #include原创 2010-05-30 12:52:00 · 1724 阅读 · 1 评论 -
年轻人,这就是C语言家族的故事
<br />——今日阅读《C++对话系列》,喜欢上这篇文章<br /> 起源sebastian 翻译 <br />我闯入船舱,“嗨!你听到一些传闻了吗?” <br />珍妮的工作并没有丝毫的停顿:“草料(在英语中的发音跟嗨一样,珍妮的话带有几分嘲讽)是用来喂马的。什么传闻?” <br />“关于加尼米德,”我解释道,“我听说他们在冰下发现了一些东西。没有迹象表明冰层近期曾融化过,说明那东西很古老了,而且它绝对不是大自然的产物。” <br />这吸引了她的注意力。她直起身来,眼睛闪着光,“是吗?不属于人类的?转载 2010-10-09 17:41:00 · 2729 阅读 · 0 评论 -
关于C++对象的自杀
关于C++对象的自杀前两天看到一个问题,一个类的成员函数是否可以delete this?据出题者的意思来看,是认为这样的问题一般比较少人会遇到,而这样就可以了解一下对方对未知问题的分析和解决思路。出于这点,我也想看看自己的思路,所以就先自己思考了一下。1.要使用delete,那么对象需要使用new来实例化(处于堆中),而不能使用类似DemoCls d;这样的语句将对象放在栈中;2.成员函数delete this,这样给了我一种感觉:这个成员函数是不是超出了自己的权限呢?然而进一步想,我认原创 2010-11-05 10:58:00 · 18737 阅读 · 56 评论 -
又见do{...}while(0)
今天碰到一个判断错误返回的宏,IF_FAILED_RETURN_XXX(result),之前没有细究,顾名思义地使用着,而今天特地进去看了下,发现该宏如下:#define IF_FAIL_RETURN_XXX(result) \ do \ { \ ... \ }while(0)瞬间内牛满面……想起大学时阅读linux内核源码过程中,第一次遇到这种用法时觉得很是惊艳。原创 2011-10-26 20:30:45 · 1818 阅读 · 2 评论 -
在Mac OS X 10.7.4 安装GCC 4.7.1
0. 准备工作下载如下资料并解压,默认在~/Downloads目录下:gmp-5.0.5 (关于GMP:http://gmplib.org/)mpfr-3.1.1 (关于MPFR:http://www.mpfr.org/mpfr-current/mpfr.html)mpc-1.0 (关于MPC:http://www.multiprecision.org/)gcc-4.7.1 (原创 2012-09-04 14:55:51 · 11924 阅读 · 2 评论