开发成长之路(8)-- C++从入门到开发(C++知名库:STL入门·容器(三))

在这里插入图片描述

关联式容器

关联式容器:每笔数据都有一个键值和一个实值。
容器内部结构可能是RB-tree,也可能是hash-table等平衡树
关联式容器没有所谓头尾,只有最大元素和最小元素,所以不会有所谓的puch_back、push_front、pop_back、pop_front、begin、end等行为。

树的导览

先看图啊,看不懂再看下面的文字描述
在这里插入图片描述

  1. 树由节点和边构成,每棵树有最上端一个根节点,每个节点可以有具方向性的边,用来和其他节点相连。
  2. 在相连节点中,在上者称为父节点,在下者称为子节点,无子节点者称为叶节点。
  3. 子节点可以存在多个。如果只允许两个子节点,则称为二叉树。
  4. 不同节点如果拥有相同父节点,则称为兄弟节点。
  5. 根节点至任何节点之间有唯一路径,路径所经过的边数,称为路径长度(length)。
  6. 根节点至任一节点的路径长度,称为该节点的深度(depth)。
  7. 某节点至其最深节点的路径长度,称为该节点的高度(height)。
  8. 整棵树的高度便以根节点的高度为准。
  9. 任何节点的大小(size)是指其所有子代(包括自己)的节点总数。

二叉搜索树

所谓二叉搜索树,可提供对数时间的元素插入和访问。二叉搜索树的节点放置规则是:任何节点的键值一定大于去其左子树中的每一个节点的键值,并小于其右子树的每一个节点的键值。

所以在二叉树中找到最大值和最小值是很简单的,比较麻烦的是元素的插入和移除。
插入新元素时,从根节点开始,遇键值较大者就向左,遇键值较小者就向右,一直到尾端,即为插入点。
移除旧元素时,如果它是叶节点,直接拿走就是了;如果它有一个节点,那就把那个节点补上去;如果它有两个节点,那就把它右节点的最小后代节点补上去。在这里插入图片描述

平衡二叉搜索树

高低脚的二叉搜索树总归是效率不高的,所以我们就要认为的调整它的高低脚。

平衡的大致意思是:任何两个叶节点的深度差不过1吧。

那我们来看一下调整树的节点使平衡的操作吧:旋转

单旋转

在这里插入图片描述
看图写字,我就不做过多赘述了。

双旋转

在这里插入图片描述
这个图我就要说两句了,有的人可能乍一看会觉得这用上面的单旋转就好了,为什么根节点不是14而是16?为什么这个会要叫双旋转?转着好玩的吗?

其实不然,你可以试着把单旋转做法的图画出来,将会惊奇的发现,还是不平衡,这就很尴尬了。

正确的转法应该是这样的:
在这里插入图片描述


set

set是什么?set就是集合。

集合有什么特性,无序性、唯一性。当然,这里的集合其实是会被根据键值自动排序的、

set的键值就是实值,实值就是键值、

对于set的迭代器,我们其实是无法使用set的迭代器去修改set的元素的值的。因为set的元素值关系到set元素的排列规则,如果任意改变set元素的值,会严重破坏其组织。

对set进行增删操作呢,那就比较不一样了。操作之前的迭代器在操作之后依然是有效的。除了被删除的那个迭代器。

标准set的底层是以红黑树为支撑的,又由于set的所有操作,红黑树都有提供,所以说set只是调用了红黑树的接口而已、


map

map的特性啊,map的所有元素都会根据元素的键值自动被排序,map的所有元素都是pair,同时拥有实值和键值,<键值,实值>

我们可以通过迭代器来修改map的实值,当然,键值是不行的。

对map进行增删操作,操作之前的迭代器在操作之后依然是有效的。除了被删除的那个迭代器。

map的底层也是红黑树,具体参照上面的。


容器讲到这里,下一篇就是我最喜欢的:空间配置器。

已标记关键词 清除标记
<p style="margin: 0px; max-width: 100%; box-sizing: border-box; color: #333333; font-family: 'Hiragino Sans GB', 'Microsoft Yahei', arial, 宋体, 'Helvetica Neue', Helvetica, STHeiTi, sans-serif; font-size: 14px; background-color: #ffffff;"><span style="max-width: 100%; box-sizing: border-box; font-size: 18px;"><strong>学习计划</strong></span></p> <p style="margin: 0px; max-width: 100%; box-sizing: border-box; color: #333333; font-family: 'Hiragino Sans GB', 'Microsoft Yahei', arial, 宋体, 'Helvetica Neue', Helvetica, STHeiTi, sans-serif; font-size: 14px; background-color: #ffffff;">1、每天学习1个小时,大概1个月完成。 2、认真听讲,要自己揣摩,明白原理。 3、动手实践、必须要多做课后练习题,遇不会的,及时提问。</p> <p style="margin: 0px; max-width: 100%; box-sizing: border-box; color: #333333; font-family: 'Hiragino Sans GB', 'Microsoft Yahei', arial, 宋体, 'Helvetica Neue', Helvetica, STHeiTi, sans-serif; font-size: 14px; background-color: #ffffff;">课程目标</p> <p style="margin: 0px; max-width: 100%; box-sizing: border-box; color: #333333; font-family: 'Hiragino Sans GB', 'Microsoft Yahei', arial, 宋体, 'Helvetica Neue', Helvetica, STHeiTi, sans-serif; font-size: 14px; background-color: #ffffff;">一个纯小白,真正理解变量的实质,指针的实质,学会C++类及面向对象编程</p> <p style="margin: 0px; max-width: 100%; box-sizing: border-box; color: #333333; font-family: 'Hiragino Sans GB', 'Microsoft Yahei', arial, 宋体, 'Helvetica Neue', Helvetica, STHeiTi, sans-serif; font-size: 14px; background-color: #ffffff;">课程简介</p> <p style="margin: 0px; max-width: 100%; box-sizing: border-box; color: #333333; font-family: 'Hiragino Sans GB', 'Microsoft Yahei', arial, 宋体, 'Helvetica Neue', Helvetica, STHeiTi, sans-serif; font-size: 14px; background-color: #ffffff;"><span style="max-width: 100%; box-sizing: border-box; color: #ff0000;"><span style="max-width: 100%; box-sizing: border-box; font-size: 20px;"><strong><strong><strong>敬告</strong></strong>该系列的课程在抓紧录制更新中,敬请大家关注。</strong></span></span></p> <p style="margin: 0px; max-width: 100%; box-sizing: border-box; color: #333333; font-family: 'Hiragino Sans GB', 'Microsoft Yahei', arial, 宋体, 'Helvetica Neue', Helvetica, STHeiTi, sans-serif; font-size: 14px; background-color: #ffffff;"><strong>该系列的课程涉及FFmpeg,WebRTC,SRS,Nginx,Darwin,Live555,等。包括音视频、流媒体、直播、Android、视频监控28181、等。</strong></p> <p style="margin: 0px; max-width: 100%; box-sizing: border-box; color: #333333; font-family: 'Hiragino Sans GB', 'Microsoft Yahei', arial, 宋体, 'Helvetica Neue', Helvetica, STHeiTi, sans-serif; font-size: 14px; background-color: #ffffff;"><strong>---------------------------------------------------</strong></p> <p style="margin: 0px; max-width: 100%; box-sizing: border-box; color: #333333; font-family: 'Hiragino Sans GB', 'Microsoft Yahei', arial, 宋体, 'Helvetica Neue', Helvetica, STHeiTi, sans-serif; font-size: 14px; background-color: #ffffff;"> </p> <p style="margin: 0px; max-width: 100%; box-sizing: border-box; color: #333333; font-family: 'Hiragino Sans GB', 'Microsoft Yahei', arial, 宋体, 'Helvetica Neue', Helvetica, STHeiTi, sans-serif; font-size: 14px; background-color: #ffffff;"> </p> <p style="margin: 0px; max-width: 100%; box-sizing: border-box; color: #333333; font-family: 'Hiragino Sans GB', 'Microsoft Yahei', arial, 宋体, 'Helvetica Neue', Helvetica, STHeiTi, sans-serif; font-size: 14px; background-color: #ffffff;"><strong>---------------------------------------------------</strong></p> <p style="margin: 0px; max-width: 100%; box-sizing: border-box; color: #333333; font-family: 'Hiragino Sans GB', 'Microsoft Yahei', arial, 宋体, 'Helvetica Neue', Helvetica, STHeiTi, sans-serif; font-size: 14px; background-color: #ffffff;"><span style="max-width: 100%; box-sizing: border-box; color: #ff0000;"><span style="max-width: 100%; box-sizing: border-box; font-size: 20px;"><strong>给学员小白大牛的3年学习径及计划</strong></span></span></p> <p style="margin: 0px; max-width: 100%; box-sizing: border-box; color: #333333; font-family: 'Hiragino Sans GB', 'Microsoft Yahei', arial, 宋体, 'Helvetica Neue', Helvetica, STHeiTi, sans-serif; font-size: 14px; background-color: #ffffff;">技术方面分</p> <p style="margin: 0px; max-width: 100%; box-sizing: border-box; color: #333333; font-family: 'Hiragino Sans GB', 'Microsoft Yahei', arial, 宋体, 'Helvetica Neue', Helvetica, STHeiTi, sans-serif; font-size: 14px; background-color: #ffffff;"><strong>1.纯开发技术方向</strong></p> <p style="margin: 0px; max-width: 100%; box-sizing: border-box; color: #333333; font-family: 'Hiragino Sans GB', 'Microsoft Yahei', arial, 宋体, 'Helvetica Neue', Helvetica, STHeiTi, sans-serif; font-size: 14px; background-color: #ffffff;"><strong>2.音视频流媒体专业方向</strong></p> <p style="margin: 0px; max-width: 100%; box-sizing: border-box; color: #333333; font-family: 'Hiragino Sans GB', 'Microsoft Yahei', arial, 宋体, 'Helvetica Neue', Helvetica, STHeiTi, sans-serif; font-size: 14px; background-color: #ffffff;"><strong>3.项目实战</strong></p> <p style="margin: 0px; max-width: 100%; box-sizing: border-box; color: #333333; font-family: 'Hiragino Sans GB', 'Microsoft Yahei', arial, 宋体, 'Helvetica Neue', Helvetica, STHeiTi, sans-serif; font-size: 14px; background-color: #ffffff;"><strong>---------------------------------------------------</strong></p> <p style="margin: 0px; max-width: 100%; box-sizing: border-box; color: #333333; font-family: 'Hiragino Sans GB', 'Microsoft Yahei', arial, 宋体, 'Helvetica Neue', Helvetica, STHeiTi, sans-serif; font-size: 14px; background-color: #ffffff;"><span style="max-width: 100%; box-sizing: border-box; color: #ff0000;"><strong>1.纯开发技术方向</strong></span></p> <p style="margin: 0px; max-width: 100%; box-sizing: border-box; color: #333333; font-family: 'Hiragino Sans GB', 'Microsoft Yahei', arial, 宋体, 'Helvetica Neue', Helvetica, STHeiTi, sans-serif; font-size: 14px; background-color: #ffffff;">1 C++必须要过硬至少学会10本经典好书</p> <p style="margin: 0px; max-width: 100%; box-sizing: border-box; color: #333333; font-family: 'Hiragino Sans GB', 'Microsoft Yahei', arial, 宋体, 'Helvetica Neue', Helvetica, STHeiTi, sans-serif; font-size: 14px; background-color: #ffffff;">2 系统级编程Windows、Linux,必须特别熟练系统API,灵活运用</p> <p style="margin: 0px; max-width: 100%; box-sizing: border-box; color: #333333; font-family: 'Hiragino Sans GB', 'Microsoft Yahei', arial, 宋体, 'Helvetica Neue', Helvetica, STHeiTi, sans-serif; font-size: 14px; background-color: #ffffff;">3 框架与工具Qt、MFC必须精通其中一种。</p> <p style="margin: 0px; max-width: 100%; box-sizing: border-box; color: #333333; font-family: 'Hiragino Sans GB', 'Microsoft Yahei', arial, 宋体, 'Helvetica Neue', Helvetica, STHeiTi, sans-serif; font-size: 14px; background-color: #ffffff;">4 架构与设计模式需要提升一个高度,不再是简单的编码,而是思维模式。</p> <p style="margin: 0px; max-width: 100%; box-sizing: border-box; color: #333333; font-family: 'Hiragino Sans GB', 'Microsoft Yahei', arial, 宋体, 'Helvetica Neue', Helvetica, STHeiTi, sans-serif; font-size: 14px; background-color: #ffffff;">5 驱动级别如果有兴趣,可以深入驱动级包括Windows、Linux</p> <p style="margin: 0px; max-width: 100%; box-sizing: border-box; color: #333333; font-family: 'Hiragino Sans GB', 'Microsoft Yahei', arial, 宋体, 'Helvetica Neue', Helvetica, STHeiTi, sans-serif; font-size: 14px; background-color: #ffffff;">6 最好学习点Java+Html+javascript等WEB技术。</p> <p style="margin: 0px; max-width: 100%; box-sizing: border-box; color: #333333; font-family: 'Hiragino Sans GB', 'Microsoft Yahei', arial, 宋体, 'Helvetica Neue', Helvetica, STHeiTi, sans-serif; font-size: 14px; background-color: #ffffff;"><span style="max-width: 100%; box-sizing: border-box; color: #ff0000;"><strong>2.音视频流媒体专业方向</strong></span></p> <p style="margin: 0px; max-width: 100%; box-sizing: border-box; color: #333333; font-family: 'Hiragino Sans GB', 'Microsoft Yahei', arial, 宋体, 'Helvetica Neue', Helvetica, STHeiTi, sans-serif; font-size: 14px; background-color: #ffffff;">1 音视频流媒体基础理论</p> <p style="margin: 0px; max-width: 100%; box-sizing: border-box; color: #333333; font-family: 'Hiragino Sans GB', 'Microsoft Yahei', arial, 宋体, 'Helvetica Neue', Helvetica, STHeiTi, sans-serif; font-size: 14px; background-color: #ffffff;">    必须认真学会,否则看代码就是看天书</p> <p style="margin: 0px; max-width: 100%; box-sizing: border-box; color: #333333; font-family: 'Hiragino Sans GB', 'Microsoft Yahei', arial, 宋体, 'Helvetica Neue', Helvetica, STHeiTi, sans-serif; font-size: 14px; background-color: #ffffff;">2 编解码方向精通h.264,h.265(hevc),</p> <p style="margin: 0px; max-width: 100%; box-sizing: border-box; color: #333333; font-family: 'Hiragino Sans GB', 'Microsoft Yahei', arial, 宋体, 'Helvetica Neue', Helvetica, STHeiTi, sans-serif; font-size: 14px; background-color: #ffffff;"> 包括理论和各个开源(ffmpeg,libx264,libx265,...)。</p> <p style="margin: 0px; max-width: 100%; box-sizing: border-box; color: #333333; font-family: 'Hiragino Sans GB', 'Microsoft Yahei', arial, 宋体, 'Helvetica Neue', Helvetica, STHeiTi, sans-serif; font-size: 14px; background-color: #ffffff;">3 直播方向  精通各种直播协议(rtsp,rtmp,hls,http-flv,...),</p> <p style="margin: 0px; max-width: 100%; box-sizing: border-box; color: #333333; font-family: 'Hiragino Sans GB', 'Microsoft Yahei', arial, 宋体, 'Helvetica Neue', Helvetica, STHeiTi, sans-serif; font-size: 14px; background-color: #ffffff;"> 钻研各个开源live555,darwin,srs,zlmediakit,crtmpserver,...</p> <p style="margin: 0px; max-width: 100%; box-sizing: border-box; color: #333333; font-family: 'Hiragino Sans GB', 'Microsoft Yahei', arial, 宋体, 'Helvetica Neue', Helvetica, STHeiTi, sans-serif; font-size: 14px; background-color: #ffffff;">4 视频监控  理论+开源(onvif+281818EasyMonitor、iSpy、ZoneMinder(web)、...  </p> <p style="margin: 0px; max-width: 100%; box-sizing: border-box; color: #333333; font-family: 'Hiragino Sans GB', 'Microsoft Yahei', arial, 宋体, 'Helvetica Neue', Helvetica, STHeiTi, sans-serif; font-size: 14px; background-color: #ffffff;"><span style="max-width: 100%; box-sizing: border-box; color: #ff0000;"><strong>3.项目实战</strong></span></p> <p style="margin: 0px; max-width: 100%; box-sizing: border-box; color: #333333; font-family: 'Hiragino Sans GB', 'Microsoft Yahei', arial, 宋体, 'Helvetica Neue', Helvetica, STHeiTi, sans-serif; font-size: 14px; background-color: #ffffff;">1 Qt项目  至少要亲手练习10个实战项目</p> <p style="margin: 0px; max-width: 100%; box-sizing: border-box; color: #333333; font-family: 'Hiragino Sans GB', 'Microsoft Yahei', arial, 宋体, 'Helvetica Neue', Helvetica, STHeiTi, sans-serif; font-size: 14px; background-color: #ffffff;">网络服务器、多线程、数据、图像处理、多人聊天、等等</p> <p style="margin: 0px; max-width: 100%; box-sizing: border-box; color: #333333; font-family: 'Hiragino Sans GB', 'Microsoft Yahei', arial, 宋体, 'Helvetica Neue', Helvetica, STHeiTi, sans-serif; font-size: 14px; background-color: #ffffff;">2音视频项目包括编解码、视频监控、直播等各个方向,都需要亲手实战项目,</p> <p style="margin: 0px; max-width: 100%; box-sizing: border-box; color: #333333; font-family: 'Hiragino Sans GB', 'Microsoft Yahei', arial, 宋体, 'Helvetica Neue', Helvetica, STHeiTi, sans-serif; font-size: 14px; background-color: #ffffff;">包括视频服务器、后台管理系统、前端播放器多端</p> <p style="margin: 0px; max-width: 100%; box-sizing: border-box; color: #333333; font-family: 'Hiragino Sans GB', 'Microsoft Yahei', arial, 宋体, 'Helvetica Neue', Helvetica, STHeiTi, sans-serif; font-size: 14px; background-color: #ffffff;"><strong>---------------------------------------------------</strong></p> <p style="margin: 0px; max-width: 100%; box-sizing: border-box; color: #333333; font-family: 'Hiragino Sans GB', 'Microsoft Yahei', arial, 宋体, 'Helvetica Neue', Helvetica, STHeiTi, sans-serif; font-size: 14px; background-color: #ffffff;"> </p> <p style="margin: 0px; max-width: 100%; box-sizing: border-box; color: #333333; font-family: 'Hiragino Sans GB', 'Microsoft Yahei', arial, 宋体, 'Helvetica Neue', Helvetica, STHeiTi, sans-serif; font-size: 14px; background-color: #ffffff;"><img src="https://img-bss.csdnimg.cn/202101280710351145.jpg" alt="" /></p> <p style="margin: 0px; max-width: 100%; box-sizing: border-box; color: #333333; font-family: 'Hiragino Sans GB', 'Microsoft Yahei', arial, 宋体, 'Helvetica Neue', Helvetica, STHeiTi, sans-serif; font-size: 14px; background-color: #ffffff;"> </p> <p style="margin: 0px; max-width: 100%; box-sizing: border-box; color: #333333; font-family: 'Hiragino Sans GB', 'Microsoft Yahei', arial, 宋体, 'Helvetica Neue', Helvetica, STHeiTi, sans-serif; font-size: 14px; background-color: #ffffff;"><strong>具体的内容包括</strong></p> <p style="margin: 0px; max-width: 100%; box-sizing: border-box; color: #333333; font-family: 'Hiragino Sans GB', 'Microsoft Yahei', arial, 宋体, 'Helvetica Neue', Helvetica, STHeiTi, sans-serif; font-size: 14px; background-color: #ffffff;"> </p> <p style="margin: 0px; max-width: 100%; box-sizing: border-box; color: #333333; font-family: 'Hiragino Sans GB', 'Microsoft Yahei', arial, 宋体, 'Helvetica Neue', Helvetica, STHeiTi, sans-serif; font-size: 14px; background-color: #ffffff;">n 1.全书概览与分析 5<br /><br />1.1 初步认识心中有数 5<br /><br />1.2 图解章节关系 6<br /><br />1.3 探讨教学方法论 7<br /><br />1.4 探讨学习方法论 7<br /><br />1.5 C++的1.0与2.0 8<br /><br />1.6 开发工具Qt5.9和VS2015/7/9 8<br /><br />控制台 8<br /><br />UI界面 8<br /><br />1.7 安装并搭建Qt5.9.8开发环境 9<br /><br />1.下载软件Qt Creator 5.9.8 9<br /><br />2.双击开始安装 9<br /><br />3.注册Qt账号 11<br /><br />4.激活Qt账号 12<br /><br />5.选择安装径 17<br /><br />6.选择“安装组件” 19<br /><br />7.同意“许可协议” 21<br /><br />8.点击“安装”后,请喝杯茶 24<br /><br />1.8 捋起袖子开干几个小案例 35<br /><br />第一写代码打印“CS”图形 36<br /><br />第二写代码打印各种图形作业 36<br /><br />1.9 原书第一章剖析 37<br /><br />1.计算机是什么? 37<br /><br />2.程序是什么? 38<br /><br />3.程序设计 38<br /><br />4.C++入门程序示例 40<br /><br />n 第2章 C++基础知识 41<br /><br />2.1 变量和赋值 41<br /><br />2.2 输入和输出 42<br /><br />2.3 数据类型和表达式 43<br /><br />2.4 简单控制流程 44<br /><br />2.5 程序风格 45<br /><br />2.6 x=x-3底是个什么鬼? 46<br /><br />第3章 更多的控制流程 47<br /><br />3.1 使用布尔表达式 47<br /><br />3.2 多分支 48<br /><br />3.3 C++循环语句详解 48<br /><br />3.4 设计循环 51<br /><br />3.5 课堂练习 51<br /><br />第4章 过程抽象和返回值的函数 52<br /><br />4.1 自顶向下设计 52<br /><br />4.2 预定义函数 53<br /><br />4.3 程序员自定义函数 53<br /><br />4.4 过程抽象 54<br /><br />4.5 作用域和局部变量 55<br /><br />4.6 重载函数名称 55<br /><br />第5章 用函数完成所有子任务 56<br /><br />5.1 void函数 57<br /><br />5.2 传引用参数 57<br /><br />5.3 使用过程抽象 59<br /><br />5.4 测试和调试函数 59<br /><br />5.5 常规调试技术 59<br /><br />第6章 I/O流——对象和类入门 60<br /><br />6.1 流和基本文件I/O 60<br /><br />6.2 流I/O工具 61<br /><br />6.3 字符I/O 62<br /><br />第7章 数组 63<br /><br />7.1 数组入门 63<br /><br />7.2 函数中的数组 65<br /><br />7.3 数组编程 66<br /><br />7.4 多维数组 67<br /><br />第8章 字符串和向量 68<br /><br />8.1 字符串的数组类型 68<br /><br />8.2 标准string类 69<br /><br />8.3 向量 71<br /><br />第9章 指针和动态数组 71<br /><br />9.1 指针 71<br /><br />9.2 手工动态数组 74<br /><br />第10章 定义类 76<br /><br />10.1 结构体 77<br /><br />10.2 类 78<br /><br />10.3 抽象数据类型 81<br /><br />10.4 继承 82<br /><br />10.5 拷贝构造函数 83<br /><br />10.6 析构函数 84<br /><br />10.7 重载赋值(=)操作符 84<br /><br />第11章 友元函数、重载操作符和数组 86<br /><br />11.1 友元函数 87<br /><br />11.2 重载操作符 88<br /><br />11.3 数组和类 91<br /><br />11.4 类和动态数组 91<br /><br />第12章 独立编译和命名空间 92<br /><br />12.1 独立编译 92<br /><br />12.2 命名空间 93<br /><br />第13章 指针和链表 94<br /><br />第14章 递归 95<br /><br />第15章 继承 96<br /><br />15.1 继承基础 96<br /><br />15.2 继承细节 97<br /><br />15.3 多态性虚函数 98<br /><br />第16章 异常处理 100<br /><br />16.1 异常处理基础 100<br /><br />16.2 用于异常处理的编程技术 101<br /><br />第17章 模板 102<br /><br />17.1 用于算法抽象的模板 102<br /><br />17.2 用于数据抽象的模板 103<br /><br />第18章 标准模板STL 104<br /><br />18.1 迭代器 104<br /><br />18.2 容器 105<br /><br />18.3 泛型算法 106<br /><br />18.4 不断进化的C++ 106<br /><br />第19章 Qt界面开发入门 106<br /><br />附录 107</p> <p style="margin: 0px; max-width: 100%; box-sizing: border-box; color: #333333; font-family: 'Hiragino Sans GB', 'Microsoft Yahei', arial, 宋体, 'Helvetica Neue', Helvetica, STHeiTi, sans-serif; font-size: 14px; background-color: #ffffff;"> </p>
相关推荐
<p style="font-family: 'Helvetica Neue', Helvetica, 'Hiragino Sans GB', Arial, sans-serif; margin: 0px; padding: 0px; color: #313d54; font-size: 16px; background-color: #ffffff;">《朱老师带你学C++》属于系列课程《朱有鹏老师热门编程语言全解》的第一部分,主要针对C++语言学习。本课程可以看做是嵌入式linux核心课程中《C语言专题》课程的延续,在学好了C语言前提下继续深度学习C++语言。整个课程共分为5部分。涵盖了C++基础语法和使用,面向对象,STL与泛型,Boost和设计模式,C++编程优化技巧等非常广泛的内容,是市面上非常缺少的深度完整学习C++,培养编程技能和修养的一套系列学习课程。整个课程预计2020年底前录制完成主体部分,总时长预计150小时左右。</p> <p style="font-family: 'Helvetica Neue', Helvetica, 'Hiragino Sans GB', Arial, sans-serif; margin: 0px; padding: 0px; color: #313d54; font-size: 16px; background-color: #ffffff;">朱老师C++第1部分-CC++</p> <p style="font-family: 'Helvetica Neue', Helvetica, 'Hiragino Sans GB', Arial, sans-serif; margin: 0px; padding: 0px; color: #313d54; font-size: 16px; background-color: #ffffff;">朱老师C++第2部分-C++和面向对象</p> <p style="font-family: 'Helvetica Neue', Helvetica, 'Hiragino Sans GB', Arial, sans-serif; margin: 0px; padding: 0px; color: #313d54; font-size: 16px; background-color: #ffffff;">朱老师C++第3部分-STL等和泛型</p> <p style="font-family: 'Helvetica Neue', Helvetica, 'Hiragino Sans GB', Arial, sans-serif; margin: 0px; padding: 0px; color: #313d54; font-size: 16px; background-color: #ffffff;">朱老师C++第4部分-C++编程优化和常见面试题</p> <p style="font-family: 'Helvetica Neue', Helvetica, 'Hiragino Sans GB', Arial, sans-serif; margin: 0px; padding: 0px; color: #313d54; font-size: 16px; background-color: #ffffff;">朱老师C++第5部分-Boost和设计模式</p> <p style="font-family: 'Helvetica Neue', Helvetica, 'Hiragino Sans GB', Arial, sans-serif; margin: 0px; padding: 0px; color: #313d54; font-size: 16px; background-color: #ffffff;"> </p> <p style="font-family: 'Helvetica Neue', Helvetica, 'Hiragino Sans GB', Arial, sans-serif; margin: 0px; padding: 0px; color: #313d54; font-size: 16px; background-color: #ffffff;">课程特色</p> <p style="font-family: 'Helvetica Neue', Helvetica, 'Hiragino Sans GB', Arial, sans-serif; margin: 0px; padding: 0px; color: #313d54; font-size: 16px; background-color: #ffffff;">*深入浅出,通俗易懂。不怕学不会,就怕你不学习。</p> <p style="font-family: 'Helvetica Neue', Helvetica, 'Hiragino Sans GB', Arial, sans-serif; margin: 0px; padding: 0px; color: #313d54; font-size: 16px; background-color: #ffffff;">*思清晰、语言风趣,对着视频看也不会想睡觉······</p> <p style="font-family: 'Helvetica Neue', Helvetica, 'Hiragino Sans GB', Arial, sans-serif; margin: 0px; padding: 0px; color: #313d54; font-size: 16px; background-color: #ffffff;">*视频 + 文档 + 练习题 + 答疑相结合。</p> <p style="font-family: 'Helvetica Neue', Helvetica, 'Hiragino Sans GB', Arial, sans-serif; margin: 0px; padding: 0px; color: #313d54; font-size: 16px; background-color: #ffffff;">*基础知识 + 思引导的教学方式,授以鱼更授以渔。</p> <p style="font-family: 'Helvetica Neue', Helvetica, 'Hiragino Sans GB', Arial, sans-serif; margin: 0px; padding: 0px; color: #313d54; font-size: 16px; background-color: #ffffff;">*系列课程。本教程只是入门篇,后续还有更多更精彩视频更新中。</p>
C++标准函数80%是STL,其中广泛使用了泛性编程思想,在其中分为几大部分。 1语言支持部分。 2诊断部分。包含了异常处理,断言,错误代码大方式。 3通用工具部分。包括动态内存管理工具,日期/时间处理工具等。 4字符串处理部分。 5国际化部分。使用Locale和facet可以为程序提供多国际化支持,包括各种字符集,日期时间,数值货币处理的支持。 6容器containers部分。STL重要部分,包含了许多数据结构,有vector动态增加的数组,queue队列,stack堆栈……甚至也包括string,它也可以看做为一种容器,并且适用所有的容器可用的方法。 7算法algorithms部分。STL重要部分,包含了70多个通用算法,都是优化的效率很高的,用来控制各种容器,内建数组等。例如find可以用来在容器中查找某特定值的元素,for_each可以用来将函数应用容器元素上,sort用于对容器中的元素排序。 8;迭代器iteratorsSTL重要组成部分,每个容器都有自己的迭代器,只有容器才可以进行访问自己的元素,它类似指针,将算法和容器中的元素联系起来。 9数值numerics部分。包含了一些数学运算的功能,对复数运算提供了支持。 10输入输出I/O部分。摸版化的IOStream部分。他提供了对C++程序的支持,并且对原有的iostream兼容。 所以,总体看来,C++标准函数,包含的10大块内容中,STL主要包含了四个部分,迭代器,容器,算法。和额外的一个字符串。
第一篇 预备知识 第一章 c++编程技术 1.1 c++与c语言区别 2 1.1.1文件扩展名的改变 2 1.1.2简化输入/输出手段 3 1.1.3 数据类型声明的改变 3 1.1.4动态内存分配算符的使用 4 1.1.5 引用 (references) 类型 6 1.1.6 const语义的扩展 7 1.1.7 指针声明类型与对象类型相一致 10 1.1.8 int与char不再等价 11 1.1.9 结构数据类型的变化 11 1.1.10 数组和指针技术的不同 11 1.2 c++存储技术 12 1.2.1 c++存储类型 12 1.2.2 c++存取修饰符 14 1.2.3 c++对象的生存期 14 1.3 c++函数技术 16 1.3.1类的构造函数、析构函数与赋值函数 16 1.3.2 在派生类中实现类的基本函数 26 .1.3.3内联函数技术 27 1.3.4友元函数技术 28 1.4 c++面向对象机制实现 29 1.4.1 类的继承技术 29 1.4.2 函数重载技术 33 1.4.3运算符重载技术 34 1.4.4纯虚函数和抽象类技术 36 1.5 小结 37 第二章 c++标准技术 2.1 c++标准简介 39 2.1.1 i/o流技术 41 2.1.2 string类 43 2.1.3 标准异常类 43 2.1.4 标准模板类 44 2.2 c++输入/输出流技术 45 2.2.1 c++语言输入/输出流概述 45 2.2.2输入输出格式控制 45 3.2.3特殊输入/输出流格式的设定 50 2.2.4自定义的流操作符 54 2.2.5 根本不用于标准流运算符间的流字符串读/写函数 56 2.2.6 标准输入/输出流的操作符的重载 57 2.2.7 c++文件输入/输出流 58 2.3 c++字符串技术 69 2.3.1字符串类基本操作 70 2.3.2 复杂字符串实例 83 2.4标准异常类 86 2.4.1 绝对终止机制 86 2.4.2 非局部goto机制 88 2.4.3 signals机制 89 2.4.4 c++异常处理机制 90 2.4.5 类的异常处理 92 2.5小结 94 第二篇 c++ stl技术原理和组成 第stl技术原理 3.1 模板概述 96 3.1.1 smalltalk 方法 96 3.1.2 模板方法 97 3.1.3模板参数 98 3.1.4关键字typename的使用 99 3.2 函数模板 100 3.2.1 函数模板基础 100 3.2.2 函数的定制 102 3.2.3 函数模板实例 104 3.3类模板 107 3.3.1 类模板定义 107 3.3.2 类模板使用 110 3.3.3类模板中的友元 110 3.3.4模板程序设计举例 111 3.4 模板安全 114 3.4.1 class类型的参数 115 3.4.2 使得包容安全 116 3.4.3 默认构造函数 116 3.4.4 operator new 117 3.4.5 destructor 118 3.4.6 其他 118 3.5模板的特殊性 121 3.5.1一个特殊化的例子 121 3.5.2 指针特殊化 123 3.6 模板实例-list 容器类设计 124 3.7 小结 127 第四章 stl技术概述 4.1 stl简介 129 4.1.1 什么是stl 129 4.1.2 stl的发展 130 4.1.3 stl的使用和实现 131 4.1.4 名字空间技术 133 4.2 stl基本结构 134 4.2.1 容器containers 135 4.2.2 算法algorithms 139 4.2.3迭代器iterators 141 4.2.4 函数对象function object 145 4.2.5 其它部件 145 4.3 stl编程概述 146 4.3.1 传统c++编程技术 146 4.3.2 stl编程技术 148 4.4 stl头文件和编译器 152 4.5 stl编程关键 154 4.5.1 stl容器技术 154 4.5.2 c++stl技术 156 4.6 小结 161 第c++ stl容器编程技术 第五章 stl容器技术总述 5.1容器技术概述 163 5.1.1 容器介绍 167 5.1.2 forward 容器 167 5.1.3 reversible 容器 168 5.1.4 sequence 168 5.1.5
©️2020 CSDN 皮肤主题: 代码科技 设计师:Amelia_0503 返回首页
实付 29.90元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值