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 的运行则 ...
随机推荐
- 【转载】JS中bind方法与函数柯里化
原生bind方法 不同于jQuery中的bind方法只是简单的绑定事件函数,原生js中bind()方法略复杂,该方法上在ES5中被引入,大概就是IE9+等现代浏览器都支持了(有关ES5各项特性的支持情 ...
- pptpd
18. pptp Server Administration This section covers a few tricks on pptp server management. It is far ...
- ssh reverse tunnel
ssh反向通道的可用场景之一:从外网访问内网的主机.所必须的是你需要一个有ssh登录权限的公网主机. 步骤如下(将内网主机称作A,公网ssh主机地址为hostP ): 1.在内网A上执行 :local ...
- 打电话,发短信,发邮件,app跳转
1.打电话 - (IBAction)callPhone1:(id)sender { NSURL *url = [NSURL URLWithString:@"tel://18500441739 ...
- <<< Oracle序列的创建、修改、删除基本操作
序列是一个命名的顺序编号生成器,可以被多个用户共享,类似sqlserver中的identity create sequence 序列名; //直接创建一个序列 CREATE SEQUENCE 序列名; ...
- Java初学者笔记
Java初学者笔记 前提:认识汉字,认识英语单词,会用键盘打字 ------------------------------- 端口是什么: --------面向对象编程(OOP) 接口”(Inter ...
- Windows的基本内容
1, 进程间通信:是指进程间进行信息交换 低级方式:信号量通信(可以交换的信息量少的时候) 高级通信方式(3种):1.共享存储器系统(剪贴板) 2.消息传递系统(进程间的数据交换以消息(message ...
- lua c api
#include <stdio.h> #include <string.h> extern "C"{ #include <lua.h> #inc ...
- Google 地图 API V3 针对移动设备进行开发
Google官方教程: Google 地图 API V3 使用入门 Google 地图 API V3 针对移动设备进行开发 Google 地图 API V3 之事件 Google 地图 API V3 ...
- Node.js入门笔记(6):web开发方法
使用node进行web开发 用户上网流程: 表面上看:打开浏览器--输入网址--跳转--上网. 背后的过程是什么呢? http请求网址到指定的主机--服务器接收请求--服务器响应内容到用户浏览器--浏 ...