2011年10月7日

面试自我介绍

摘要: 面试时,我们会面对形形色色的问题,而最令人哑口无言的,往往是一些最简单和最常见的题目,比如"请你自我介绍一下"。大多数应征者的反应是--我应该如何作答呢?其实要懂得应对此问题,就要先做好准备You'll have a better chance of impressing the interviewer if you think about this question before the interview.The first thing to realize is that the question, "Tell me about yourself,& 阅读全文

posted @ 2011-10-07 23:34 伪君 阅读(484) 评论(0) 推荐(0) 编辑

虚函数表

摘要: C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,RTTI技术,虚函数技术,要么是试图做到在编译时决议,要么试图做到运行时决议。关于虚函数的使用方法,我在这里不做过多的阐述。大家可以看看相关的C++的书籍。在这篇文章中,我只想从虚函数的实现机制上面为大家 一个清晰的剖析。当然,相同的文章在网上也出现过一些了,但我总感觉这些文章不是很容易阅读,大段大段的代码,没有图片,没 阅读全文

posted @ 2011-10-07 10:59 伪君 阅读(153) 评论(0) 推荐(0) 编辑

2011年9月25日

回调函数

摘要: 5.回调函数上一页第24章函数接口下一页5.回调函数请点评如果参数是一个函数指针,调用者可以传递一个函数的地址给实现者,让实现者去调用它,这称为回调函数(Callback Function)。例如qsort(3)和bsearch(3)。表24.7.回调函数示例:void func(void (*f)(void *), void *p);调用者实现者提供一个回调函数,再提供一个准备传给回调函数的参数。把回调函数传给参数f,把准备传给回调函数的参数按void *类型传给参数p在适当的时候根据调用者传来的函数指针f调用回调函数,将调用者传来的参数p转交给回调函数,即调用f(p);以下是一个简单的例子 阅读全文

posted @ 2011-09-25 09:56 伪君 阅读(313) 评论(0) 推荐(0) 编辑

2011年9月22日

delete和delete[]

摘要: C++告诉我们在回收用new分配的单个对象的内存空间的时候用delete,回收用new[]分配的一组对象的内存空间的时候用delete[]。楼主的这个问题提得很好。很多人注意到了这个问题,但是却不清楚为什么要这样做,不这样做行不行。关于new[]和delete[],其中又分为两种情况:(1)为基本数据类型分配和回收空间;(2)为自定义类型分配和回收空间。对于(1),上面提供的程序已经证明了delete[]和delete是等同的。但是对于(2),情况就发生了变化。请看下面的程序。#include<iostream>;usingnamespacestd;classT{public:T( 阅读全文

posted @ 2011-09-22 09:41 伪君 阅读(209) 评论(0) 推荐(0) 编辑

2011年9月21日

递归与字符串

摘要: 以前做过类似字符串的题目,当时觉得字符串也能用递归来做非常神奇,后来思考了下,觉得只要抓住字符串是由一个个字符组成的,从第一个字符到最后一个字符每一个都可以作为一次递归,把index作为参数传进去就行,以这种思想为指导才把此题解了出来。 对于每个字符只有两种情况,设当前字符串指针为x, 目标字符串指针为y: GetString(x,y)= GetString(x+1,y), 不取当前字符 GetString(x,y) = GetString(x+1,y+1), 取当前字符 1 ///////////////////////////////////////////////////... 阅读全文

posted @ 2011-09-21 21:41 伪君 阅读(947) 评论(0) 推荐(0) 编辑

2011年9月19日

深入探讨C++中的引用

摘要: 引用是C++引入的新语言特性,是C++常用的一个重要内容之一,正确、灵活地使用引用,可以使程序简洁、高效。我在工作中发现,许多人使用它仅仅是想当然,在某些微妙的场合,很容易出错,究其原由,大多因为没有搞清本源。故在本篇中我将对引用进行详细讨论,希望对大家更好地理解和使用引用起到抛砖引玉的作用。 一、引用简介 引用就是某一变量(目标)的一个别名,对引用的操作与对变量直接操作完全一样。 引用的声明方法:类型标识符 &引用名=目标变量名; 【例1】:int a; int &ra=a; //定义引用ra,它是变量a的引用,即别名 说明: (1)&在此不是求地址运算,而是起标识作 阅读全文

posted @ 2011-09-19 16:07 伪君 阅读(147) 评论(0) 推荐(0) 编辑

关于sizeof

摘要: 昨天看了一些C语言问题(http://www.gowrikumar.com/c/)以及国内几个Geeks的解答(http://wangcong.org/blog/?p=291,http://www.matrix67.com/blog/archives/429),看来自己的C基础还是可以的,没遇到什么大问题。有时候自己也去分析过IOCCC(http://www.ioccc.org/)的代码,或多或少可以学到一些东西。尽管听起来都像是“‘回’字有四样写法”的那样。 说几条我最近想到的问题及其解答,都是关于sizeof的: 1、sizeof(i++)之后,i的值会怎样?答案是不变。记得大一初... 阅读全文

posted @ 2011-09-19 14:36 伪君 阅读(432) 评论(0) 推荐(0) 编辑

2011年9月18日

头文件预编译

摘要: 所谓头文件预编译,就是把一个工程(Project)中使用的一些MFC标准头文件(如Windows.H、 Afxwin.H)预先编译,以后该工程编译时,不再编译这部分头文件,仅仅使用预编译的结果。这样可以加快编译速度,节省时间。 预编译头文件通过编译stdafx.cpp生成,以工程名命名,由于预编译的头文件的后缀是“pch”,所以编译结果文件是projectname.pch。 编译器通过一个头文件stdafx.h来使用预编译头文件。stdafx.h这个头文件名是可以在project的编译设置里指定的。编译器认为,所有在指令#include "stdafx.h"前的代码都是预编 阅读全文

posted @ 2011-09-18 10:15 伪君 阅读(248) 评论(0) 推荐(0) 编辑

2011年9月17日

堆与栈有什么区别?

摘要: 一、预备知识—程序的内存分配一个由c/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。3、全局区(静态区)(static)—,全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域, 未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。 - 程序结束后有系统释放4、文字常量区 —常量字符串就是放在这里的。 阅读全文

posted @ 2011-09-17 16:52 伪君 阅读(194) 评论(0) 推荐(0) 编辑

2011年9月11日

[算法导论]非比较排序及数据结构

摘要: 并非基于比较策略的排序,可以突破比较排序Ω(NlogN)的限制,打倒O(N)的水平计数排序 o(n+k) 稳定排序create c[1...k]=0create b[1...n]for i= 1 to n do c[i]++for j= 2 to k do c[j]=c[j]+c[j-1]for r=n to 1 do b[c[a[r]]]=a[r] c[a[r]]--基数排序 稳定,局部使用插入排序从低位开始排l桶排序中位数与顺序统计学最大与最小值 各需要O(n)同时找到,O(3/2n), 比较时两个两个取寻找第k顺序位数字,O(n),非比较策略find_select(a,p,r... 阅读全文

posted @ 2011-09-11 16:59 伪君 阅读(226) 评论(0) 推荐(0) 编辑

导航