您的位置:首页 > 职场人生

<<程序员面试宝典>>读书笔记 1

2016-04-18 11:55 337 查看

<<程序员面试宝典>>读书笔记

1.句柄和指针的区别和联系?

句柄和指针是完全两个不同的概念,句柄是个32bit unit,Windows系统用句柄标记系统资源。指针只标记某个物理内存地址。

句柄实际上是Windows系统在内存维护的一个对象内存物理地址列表的整数索引。因为Windows系统的内存管理经常将当前空闲的内存释放掉,当重新访问时在提交到物理内存,所以对象的物理地址是变化的,不允许程序通过物理地址来访问对象。HDC是设备描述表句柄。CDC是设备描述表类。

2.利用递归的手段计算N!

int n,j=1;
int find(int n){
if(n==0||n==1)  return j=1;
else
return find(n-1)*n;
}


3.用递归的方法计算斐波那契数列的通项。

f1=f2=1,后一项是前两项之和。

4.打靶10中90环问题。

int sum,socre[10];
void Cumput(int socre,int num)
{
if(socre<0||socre>(num+1)*10)  return;
if(num==0){
socre[num]=socre;
output();
return;
}
for(int i=0;i<=10;i++){
socre[num]=i;
Cumput(socre-i,num-1);
}
}
void output(){
for(i=9;i>=0;i--){
cout<<socre[i]<<endl;
}
++sum;
}


4.介绍一下STL和容器,并举例说明vector。

标准模板库是基于模板的容器类库,包括链表,队列,堆栈。还包含一些常用的算法,排序和查找。标准模板库是经过多次的调试和测试的,具有很高的性能和重用性。

容器是包含其他对象的对象。主要分为两种顺序和关联式的,顺序容器对其成员的顺序访问和随机访问。关联容器则通过优化关键值来访问它们的元素。标准容器库在不同的系统是可以移植的。所有标准容器库的定义都在 using namespace std中。

vector对象指针能够自动析构,所以不需要调用delete。

与erase不同的是,remove函数删除元素后并不会改变vector的大小,只是把后面的元素往前移,并返回一个指向vector末尾的新迭代器。

执行remove之后,你可以手工删除从NewEnd开始到xx.end()之前的所有元素,而且效率不会低。

5.何为泛型编程?

STL就是泛型编程的一个例子,表示用一致的方式编程是可能的。即我所描述的与语言无关。

一种基于发现高效算法的最抽象表示的编程方法。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: