Boolan-STL与泛型编程第一周笔记

一. 操作符重载

二. 类模板(对于各种参数类型都是通用的)

 template<typename T>

Classcomplex

{

  Private: T real,image;

};

使用时:

complex<double> c1;

complex<int> c2;

三. 函数模板:(对于各种类型都是通用的,但是相对于类中必须要有相应的操作符重载)

Template

Inline

const T& min(const T& a,const T& b){……};

其中,有操作符 < 的重载。

四. 特化specialization(之前都是通用的,对于某一种类,会有更加高效的做法)

计算机图形学(可以去看一下)

1. template<>  struct_type_traits {};

2. _STL_TYPENAME_NULL  struct hash<int>

3. template<>  class allocator<void>


偏特化:partical specialization

泛化:Template<class T,class Alloc=alloc>

1. Template<class Alloc> class vector<bool , Alloc>

个数偏特化,可以使得效率更高

2. 泛化Template struct iterator_traits{}

范围偏特化

Template<class T> struct iterator_traits<T*>

Template<class T> struct iterator_traits<const T*>

五. 分配器allocator

Operator new() 和malloc()

默认使用的分配器:

Template<class _Ty,class _A=allocator<_Ty>>

六.容器之间的关系,并非继承,而是复合

Array(连续空间)、vector(连续空间)、list、deque、forward list (以前版本slist)、stack 、heap

Rb-treee(基础)、set、map、multiset、multimap……


后续还有还有深谈list、vector、array、forward list、deque、queue、stack、rb-tree、set、map、multiset、multimap、hash table,敬请期待。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容