侯捷STL学习(四)--OOP-GP/操作符重载-泛化特化
C++标准库第二讲
- 体系结构与内核分析
- 第1-7节为第一讲
- 读源代码前的准备
第八节:源代码分布
- C++基本语法
- 模板的使用
- 数据结构和算法
- 本课程主要使用:
Gnu C 2.9.1与Gun C 4.9 - VS2013中源代码的地址
D:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include
第九节:OOP(面向对编程) VS GP(泛型编程)
- OOP将数据data和方法methods合在一起
list不能像vector,deque一样用全局的sort排序;因为list内存上不连续,不能进行随机访问迭代器的操作- 全局排序的源码

- GP将数据data和方法methods分开来

- 所有算法最终都是在比较大小!
- Containers和Algorithm各自单独闭门造车,其可以通过Iterator连通
- Algorithm通过Iterator确定操作范围,并通过Iterators取用Container元素。
第十节:操作符重载&&模板(Specialiazation,全/偏特化)
Operator Overloading操作符重载

- 限制的情况,有的可能不能进行重载

- 迭代器的重载,对容器实现很有帮助

类模板
- 在实例化时要指明类型

函数模板
- 实例化时编译器进行实参推导

成员模板
- 比较少用

Specialization,特化


偏特化
- 有个数上和范围上的偏

侯捷STL学习(四)--OOP-GP/操作符重载-泛化特化的更多相关文章
- 侯捷STL学习(四)--allocator和容器时间的实现关系
第十一节 分配器 分配器的好坏影响到容器的性能 operator new()里面调用malloc D:\Program Files (x86)\Microsoft Visual Studio 12.0 ...
- 侯捷STL学习(12)--STL相关内容hash+tuple
layout: post title: 侯捷STL学习(12) date: 2017-08-01 tag: 侯捷STL --- 第四讲 STL相关的内容 Hash Function 将hash函数封装 ...
- 侯捷STL学习(11)--算仿+仿函数+适配器
layout: post title: 侯捷STL学习(十一) date: 2017-07-24 tag: 侯捷STL --- 第三讲 标准库内核分析-算法 标准库算法形式 iterator分类 不同 ...
- 侯捷STL学习(九)--关联式容器(Rb_tree,set,map)
layout: post title: 侯捷STL学习(九) date: 2017-07-21 tag: 侯捷STL --- 第十九节 容器rb_tree Red-Black tree是自平衡二叉搜索 ...
- 侯捷STL学习(十)--容器hashtable探索(unordered set/map)
layout: post title: 侯捷STL学习(十) date: 2017-07-23 tag: 侯捷STL --- 第二十三节 容器hashtable探索 hashtable冲突(碰撞)处理 ...
- 侯捷STL学习(八)-- 深度探索deque
layout: post title: 侯捷STL学习(八) date: 2017-07-19 tag: 侯捷STL --- 第十八节 深度探索deque上 duque内存结构 分段连续,用户看起来是 ...
- 侯捷STL学习(七)--深度探索vector&&array
layout: post title: 侯捷STL学习(七) date: 2017-06-13 tag: 侯捷STL --- 第十六节 深度探索vector vector源码剖析 vector内存2倍 ...
- 侯捷STL学习(一)
开始跟着<STL源码剖析>的作者侯捷真人视频,学习STL,了解STL背后的真实故事! 视频链接:侯捷STL 还有很大其他视频需要的留言 第一节:STL版本和重要资源 STL和标准库的区别 ...
- 侯捷STL学习(一)--顺序容器测试
开始跟着<STL源码剖析>的作者侯捷真人视频,学习STL,了解STL背后的真实故事! 视频链接:侯捷STL 还有很大其他视频需要的留言 第一节:STL版本和重要资源 STL和标准库的区别 ...
随机推荐
- XXL-Job高可用集群搭建
如果XXL-Job admin挂掉就完蛋了,所有任务无法执行 调度中心:管理任务的触发 调度中心如何实现集群? XXL-Job如何实现集群? 底层已经实现好了!文档里面有的 如果想实现Job集群: ...
- 爬虫第三篇:requests模块
requests模块其实就是对urllib.request模块的进步一不优化,提供了很多可选的参数,同时简化了操作.下面我还是贴上具体操作的代码. requests GET请求 GET请求html文件 ...
- HTML5 拖放---drag和drop
拖放四步走:第一步:设置元素可拖放,即把 draggable属性设置为 true: 例:<div id="div" draggable="true"&g ...
- jquery自定义window事件
<body> <a href='https://www.baidu.com/'>百度</a> </body> <script type=" ...
- Advanced SQL: Relational division in jOOQ
i Rate This Relational algebra has its treats. One of the most academic features is the ...
- decimal与 float的区别
decimal 数据类型最多可存储 38 个数字,所有数字都能够放到小数点的右边.decimal 数据类型存储了一个准确(精确)的数字表达法:不存储值的近似值. 定义 decimal 的列.变量和 ...
- spring boot: 条件注解@Condition
@Conditional根据满足某一个特定的条件创建一个特定的Bean(基于条件的Bean的创建,即使用@Conditional注解). 比方说,当一个jar包在一个类的路径下的时候,自动配置一个或多 ...
- tagclass,taglib,tld设置
<tag> <name>dateOutput</name> <tagclass>tags.DateOutput</tagclass> // ...
- node——路由控制
路由控制 前面我接触了如何使用express建立一个工程,虽然这个工程包含了一些基本的框架,但是没有实际内容,我们会不断给他增加的. 工作原理 我们在浏览器中访问app.js建立的服务器时,会出现一个 ...
- nyoj-130-相同的雪花(hash)
题目链接 /* Name:NYOJ-130-相同的雪花 Copyright: Author: Date: 2018/4/14 15:13:39 Description: 将雪花各个分支上的值加起来,h ...