一些面试题

1. 介绍红黑树

2. 平衡二叉树,构建,插入

3. 堆构建

4. 面向对象三个基本特征

http://www.cppblog.com/snowball/archive/2008/07/01/55051.html

5. STL六大组件

http://blog.csdn.net/huayehanshan/article/details/3864191

http://blog.tianya.cn/blogger/post_show.asp?BlogID=53321&PostID=469574

 Containers :  实现基本的数据结构, 如 vector\list\map\

 Allocators: 负责空间的分配

 Algorithms: 常用算法的封装,如 sort\find(查单个字符第一次出现的迭代下标)\search(查一个字符串第一次出现的迭代下标)\remove\copy\erase\

                       max_element\min_element.

 Iterators: 算法和容器的粘合剂,是所谓的“泛型指针”。每个容器都提供了遍历自己元素的方法。

 Function Objects:可作为算法的某种“策略”,如less_equal(), greater() 用于sort()算法

 Adatpters: 一种用来修饰容器、仿函数、迭代器接口的东西。如STL的queue和stack,其底层都是deque, 只不过由不同的Adapers,修改了顶层的界面,表现出不同的行为。

6. vector的内存模型

 http://my.oschina.net/u/164131/blog/132396

  简单看来,为了支持随机访问,vector中分配的是一段连续的内存,当内存的size>= capacity时,会重新申请一个2倍的内存,将原内容copy过去,这会影响性能。因此一般可以初始时就在构造参数中或用reverse保留一段较大内存。容器的内存管理是由allocator负责的,管理内存池。释放内存后,会将内存放回内存池,并不直接返给操作系统。

vector的比较操作符,其中,对于operator==和operator!=,如果vector对象拥有相同的元素个数,并且对应位置的元素全部相等,则两个vector对象相等;否则不等。对于operator<、operator<=、operator>、operator>=,采用字典排序策略比较。

  《STL 源码剖析》 《Effective STL》

7. DLL 隐式加载和显示加载

http://liuviphui.blog.163.com/blog/static/2022730842013544056165/

 http://blog.csdn.net/balonfan/article/details/1603836

posted on 2013-09-16 14:57  没有什么能够阻挡  阅读(213)  评论(0编辑  收藏  举报

导航