1. const int * ,const * int ,int * const区别;
前面两个是指向的值不能修改,后面一个不能再指向另一个新地址。
2. new malloc
http://www.eeskill.com/article/id/40028
3. i++ ,++i区别,哪个效率更高,和怎么实现的?
more effective c++上的讲的很详细,一般++i效率更高,实现是重载了++操作符
Num & operator++(); //前缀自加
constNumoperator ++(int); //后缀自加
Num& operator --(); //前缀返回引用
constNumoperator --(int); //后缀返回形参
4. 多态实现机制,virtual和inline
5. const成员函数,函数重载
6. 指针和引用
不能使用指向空值的引用,引用要被初始化
指针可以被重新赋值指向另一个对象,
7. 深拷贝和浅拷贝
8. STL map,vector,红黑树
红黑树5大性质(口诀):非红即黑,根黑,null黑,父红子黑,殊路同黑。旋转啥的,很麻烦,说不出来
--vector能自动扩容,但能自动缩小吗?
不能,但是能通过swap实现,std::vector(v).swap(v);
创建了一个临时变量代替那个命名的,然后使用swap(),这样我们就去掉了不必要的空间,得到实际大小的v。
9. struct class区别
10. 链表判断是否有环,两个链表是否交叉
判环:2个指针追赶,
2链表是否交叉(都无环):都遍历一遍,看最后的尾节点是否指向同一位置
遍历a链表,计数,再遍历b,计数,看最后的数量
将a的最后一节点的next指向b的头,再判断是否有环
2链表是否交叉(有环)。。。
11. 项目简介
12. 智能指针
13. 游戏中,怎么设计一把枪打怪兽,怎么判断是否命中,如果有成千上万怪兽,怎么设计命中哪一个?