自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 收藏
  • 关注

原创 一道面试题

问:已有一个函数f(),它等概率的生成1-5的整数,问如何利用该函数,等概率的生成1-7的整数?解: 先抛开这个问题,换另一个问题进行思考:假若我们现在有一个等概率生成1~35整数的函数g(),如何构建等概率生成1~5整数的f()和等概率生成1~7整数的h()?    这第二个问题似乎很简单,g()/7,g()/5 就可以得到 f()和h()。    所以,原问题的关键在于,如何由f()构建出一个

2007-09-18 13:17:00 858 1

原创 一个有意思的博弈问题

翻书看到一道挺有意思的博弈问题,据说是冯.诺伊曼提出来的。    "三个人持枪决斗。A的枪法最差,成功率为1/3;B的成功率稍好,为2/3;C的枪法最准,每击必中。决斗规则如下:三个人轮流开枪,枪法最差的A有最高的开枪优先级,B次之,C最低。        假设你是A,采取什么样的策略,才能使自己活命的概率最大?"    这题不仔细考虑的话,凭直觉定会选择向C开枪,因为C的威胁最大!如果给C开枪的

2007-09-18 11:53:00 1431

原创 一道简单的笔试题

要求:将C++源代码中的注释去掉即,对于下列源代码#include iostream> // comment1using namespace std;/* comment 2// #include  */ int main( int argc,char *argv[] /*comment 3*/ ){    return 1;}/**//**/...处理后应输出#inclu

2007-09-18 10:35:00 1069

原创 VPTR与构造函数和继承

    C++中类的成员函数默认情况下是non-virtual,即被调用时为静态绑定。        至少包含一个virtual成员函数的类,都有一个VTABLE——虚函数映射表,表中的每项对应类中一个virtual成员函数的函数体地址。相应的该类的每个对象在为其分配存储空间时,编译器会额外的为每个对象附加一个指针VPTR,该指针指向该对象所属类的VTABLE。    一定要明确概念,VTABLE

2007-09-11 20:03:00 2374 2

原创 几个需要清晰理解的概念

1  名称覆盖    子类若定义了与基类成员名称相同的成员,则基类成员在子类中会被覆盖。这里要理解的是C++的名称掩盖规则(name-hiding rules)是很简单的:只看名称,不区别类型。    此外,如果基类中存在某个成员函数的若干个重载版本,而子类也定义了同名函数(参数类型与返回值是否一致都不重要),则基类所有版本的重载函数都会被覆盖。    例如,下面例子中基类的成员x和 foo()都

2007-09-09 22:47:00 1495

原创 三种继承方式与三种访问权限的相互组合

        对基类进行继承时,三种继承方式下,基类的三种访问权限在子类中会有如何的变化这个问题,本科时上C++这门课的时候曾仔细的分析并弄得挺清楚,后来时间久了、用的也不多,慢慢的又变得心里不太有谱了。这次接着准备面试的契机,又重新仔细分析了一番,留个案底,以免再犯糊涂。三种访问权限    public:可以被任意实体访问    protected:只允许子类及本类的成员函数访问    pri

2007-09-09 22:04:00 9393 1

原创 转型操作的中的一个陷阱

    今天看《Effective C++ 3rd》中的第27款时看到的:         "关于强制转型的一件有趣的事,是很容易写出看起来似是而非(在其它语言中也许是对的)的代码。例如,许多应用程序框架要求 derived classes中的virtual member function要首先调用 base class(的对应函数。假设我们有一个 Window base class(基类)

2007-09-08 23:55:00 1425 3

原创 for循环体中定义的变量的生存期

     在for的循环体中定义的non-static对象,其生存期仅限于一次循环迭代,即在本次循环结束时,对象会被自动销毁。    试验代码如下:#include iostream>using namespace std;class A...{public:    A()...{cout"in ctor of A"endl;}    A(A&)...{cout"in copy ctor 

2007-09-08 23:19:00 5713 1

原创 local static对象和non-local static对象在初始化时机上的差异

    C++中的static对象是指存储区不属于stack和heap、"寿命"从被构造出来直至程序结束为止的对象。这些对象包括全局对象,定义于namespace作用域的对象,在class、function以及file作用域中被声明为static的对象。其中,函数内的static对象称为local static 对象,而其它static对象称为non-local static对象。    这两者在

2007-09-08 06:38:00 7627

原创 由一道面试题想到的

注:近日同学拿着《程序员面试宝典》这本书中的一道面试题来跟我讨论题目大意如下:    int i =1;    j=(i++)*(i++);    k=(++i)*(++i);       则j=?,k=?本猪看了一阵恶心,服了,国内的教材和考试、面试怎么总喜欢鼓捣这些不入流的trick?以本题为例,所谓的trick根本就是错误!根据C++标准的规定,这样的语句属于Undefine

2007-09-06 10:44:00 2328 1

原创 linux若干实用命令

#统计磁盘空间的占用情况du -s * | sort -nr > $HOME/space_report.txt#进行“更新"复制,即只对新增和修改日期更新的文件执行复制操作cp -u        # 显示当前目录下最近更新的10个条目ls -lt | head    # 统计并按降序显示当前目录下所有条目所占的磁盘空间du -h | sort -nr# 显示当前目录及其子目录中包含的文件数fin

2007-09-05 00:41:00 995

原创 bash 杂记

I/O 重定向:“>”和“>>"的区别在于前者导致overwrite,而后者则导致append。一个命令的标准输出和标准输入都可以被重定向,而且顺序并不产生影响。bg(shell内置命令)——可将进程设为后台进程echo $PATH ——显示环境变量中的路径export PATH=$PATH:directory——可用于添加shell的搜索路径cd、pwd都属于shell的内置命令可在shell中

2007-09-05 00:40:00 1182

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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