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。
鸡尾酒排序,定向冒泡排序,每个外循环里同时把最大最小元素挑出来,然后调整上下边界,如果没有调换发生才退出外循环。
选择排序,这是读书时大一最愿意用的排序方式,外循环是位置,内循环是每次挑出来的最大或者最小值。
归并排序
C++ 基础知识复习(三)的更多相关文章
- 运维之Linux基础知识(三)
运维之Linux基础知识(三) 1. 查看文本 cat tac more less head tail 1.1 cat 连接并显示文件 cat -n:在显示的时候,将每一行编号 -E:显示结束符$ - ...
- JavaScript进阶【三】JavaScript面向对象的基础知识复习
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- Java JDBC的基础知识(三)
在前面的Java JDBC的基础知识(二)和(三)中,主要介绍JDBC的原理和简单的应用过程.尤其在(二)中,可以发现代码进行多次try/catch,还有在前面创建连接等过程中好多参数我都给写定了. ...
- 基础知识《三》java修饰符
一.修饰符 private 成员随时都是“私有”的,任何人不得访问.但在实际应用中,经常想把某些东西深深地藏起来,但同时允许访问衍生类的成员. protected 关键字可帮助我们做到这一点.它的意思 ...
- 林大妈的JavaScript基础知识(三):JavaScript编程(2)函数
JavaScript是一门函数式的面向对象编程语言.了解函数将会是了解对象创建和操作.原型及原型方法.模块化编程等的重要基础.函数包含一组语句,它的主要功能是代码复用.隐藏信息和组合调用.我们编程就是 ...
- ZYNQ笔记(0):C语言基础知识复习
ZYNQ的SDK是用C语言进行开发的,C语言可以说是当今理工类大学生的必备技能.我本科学C语言时就是对付考试而已,导致现在学ZYNQ是一脸懵逼.现在特开一帖,整理一下C语言的基础知识. 一.定义 1. ...
- Jquery源码中的Javascript基础知识(三)
这篇主要说一下在源码中jquery对象是怎样设计实现的,下面是相关代码的简化版本: (function( window, undefined ) { // code 定义变量 jQuery = fun ...
- Android中的一些基础知识(三)
最近在回顾Android的基础知识,就把一些常见的知识点整理一下,以后忘了也可以翻出来看一看. 在TextView中显示图像(使用< img>标签) 在TextView中显示图片的方法有许 ...
- spring 基础知识复习
spring是一个分层架构,由 7 个定义良好的模块组成.Spring 模块构建在核心容器之上,核心容器定义了创建.配置和管理 bean 的方式. 组成spring框架的每个模块(或组件)都可单独存在 ...
- ASP.NET Core 基础知识(三) Program.cs类
ASP.NET Framework应用程序是严重依赖于IIS的,System.Web 中有很多方法都是直接调用的 IIS API,并且它还是驻留在IIS进程中的.而 ASP.NET Core 的运行则 ...
随机推荐
- 分享我的开源项目-springmore
之前有在博客园分享过springmore,不知道是什么原因,被管理员移除首页 在此郑重声明,这是我个人的开源项目,东西不多,也不存在打广告,也没有什么利益可图 完全是出于分享的目的,望博客园管理员予以 ...
- requestAnimationFrame,Web中写动画的另一种选择
HTML5/CSS3时代,我们要在web里做动画选择其实已经很多了: 你可以用CSS3的animattion+keyframes; 你也可以用css3的transition; 你还可以用通过在canv ...
- mui日期插件$, each遍历,EventListener事件监听,json格式
(function($) { $.init(); var result = $('#result')[0]; var btns = $('.btn'); btns.each(function(i, b ...
- c#使用正则表达式抓取a标签的链接和innerhtml
//读取网页html string text = File.ReadAllText(Environment.CurrentDirectory + "//test.txt", Enc ...
- BZOJ3505 [Cqoi2014]数三角形
本文版权归ljh2000和博客园共有,欢迎转载,但须保留此声明,并给出原文链接,谢谢合作. 本文作者:ljh2000作者博客:http://www.cnblogs.com/ljh2000-jump/转 ...
- New blog
New blog //域名还没备案_(:з」∠)_
- BZOJ2815: [ZJOI2012]灾难
传送门 学LCA的时候根本没意识到LCA可以有这么多玩法. 这玩意据说是个高级数据结构(支配树)的弱化版,蒟蒻没学过呀.所以出题人提出一个概念叫灾难树. 我理解的灾难树的意思实际上是属于DAG的一个子 ...
- ubuntu下mysql使用方法
连接mysql的命令为: mysql -u root(用户名) -p 使用 mysqladmin 命令行 修改 用户名密码的方式.最正确的格式如下: mysqladmin -u root -p pas ...
- 解决Xftp经常断开连接的问题,Xftp中文乱码
#文件 --> 选项 --> 勾选“发送保持活动状态消息” 间隔 60秒 #工具 -> 选项 延伸阅读: Xshell个性化设置,解决Xshell遇到中文显示乱码的问题
- jenkins自动化构建iOS应用配置过程中遇到的问题
最近配置jenkins来自动构建iOS应用,期间遇上不少问题.在这里分享给大家,也给自己留个底,方便下次解决问题. 首先说明下基本情况,我们因为部署jenkins的机器不是Mac,所以不能安装Xcod ...