C++ 基础知识复习(三)

43. 继承的几种方式:

答:共有继承public,保护继承protected,私有继承private。其中后两种继承会改变原有的访问级别。

44. 深复制与浅复制:

答:简单理解,深复制自己申请了内存,浅复制直接把地址抄了过去。

45. C++是否支持参数个数不确定:

答:支持,可以使用隐藏参数机制来实现。

46. 什么是内联函数:

答:在类声明内部声明或定义叫做内联函数,为了解决函数调用的效率问题。类声明内部声明,外部定义,叫做显示内联函数,在类声明内部定义叫做隐式内联函数。内联函数不允许使用循环和switch,如包含,则作为普通函数处理。

47. 什么是引用形参:

答: 记得什么是引用吗? 用&定义的别名,当将他作为函数参数传递时就叫做引用形参,比如swap(int a,int b)无法真正交换,但swap(int &a,int &b)就可以了,实际是操作地址。

48. 静态成员函数的特点:

答:没有this指针,只在文件所在编译单位内使用,不能被其他文件使用,只能访问静态变量。

49. 重载overload时,实参的匹配规则:

答: 精确匹配》类型提升》标准转换》类类型转换。

模板与STL部分:

50. 模板分为函数模板和类模板。

51. STL是一个标准c++库,容器是其重要组成部分。主要提供了顺序容器和关联容器,同时提供了迭代器以及100多种算法实现,包括排序,便利。提供的主要容器有vector,list,deque,set,multiset,map,multimap。

52. STL中的顺序容器:

53. STL中的关联容器:set,multiset,map,multimap,注意区别在于是否允许键值是重复的。set只保存一个值,map保存一对。

54. STL容器适配器:只是容器的变种,不是单独的。stack,queue,和priority_queue。

55. 迭代器已经定义好了两个,.begin()和.end(),要注意end指向的是最后一个元素的下一个位置,并不是容器的元素。

数据结构部分:

56. 基本数据结构包括:链表,队列(FIFO),栈(LIFO),树,图。

57. 树的分类:有序树,无序树。树的名词:结点(node),结点的度(degree),叶子(Leaf),孩子(child),父结点(parent),兄弟(sibling),结点的层次(level),深度(depth),森林(forest),路径(path),祖先(Ancestor),子孙(Descendant)

58. 如何对树进行遍历:深度优先遍历 和 广度优先遍历,分别对应深度优先搜索DFS和广度优先搜索BFS。

59. 二叉树的遍历方式:主要有三种,先序遍历,中序遍历和后序遍历。

60. 计算二叉树的高度:后序遍历,更适合当白板题。

61. 图的实现方式:邻接矩阵和邻接链表。

62. 图的搜索算法:同样是深度优先和广度优先两种算法。

63. 常用的排序算法有哪些:

答:

冒泡排序 bubble sort。

鸡尾酒排序,定向冒泡排序,每个外循环里同时把最大最小元素挑出来,然后调整上下边界,如果没有调换发生才退出外循环。

选择排序,这是读书时大一最愿意用的排序方式,外循环是位置,内循环是每次挑出来的最大或者最小值。

归并排序

 

posted @ 2016-08-21 19:50  盛小胖  阅读(258)  评论(0编辑  收藏  举报