①泛型程序设计是什么?
泛型程序设计的特点如果要用一个词语概括,那就是——代码通用。
②泛型程序设计的主要工具——模板
③概念:作为参数的数据类型的功能
④模型:具备一个概念所需要功能的数据类型
⑤子概念:概念B包含概念A中所有的功能且概念A与概念B不同,则B是A的子概念
很多STL的实现都是用概念来命名模板参数的
STL(标准模板库):提供了一些常用的数据结构和算法,奠定了泛型程序设计的逻辑基础
①STL的四个基本组件:
1.容器:用来容纳一组元素的对象
七种基本容器:vector(向量) deque(双端队列) list(列表)
set(集合) multiset(多重集合) map(映射) multimap(多重映射)
两种基本类型:顺序容器:相同类型元素,线性形式组织形成(向量、双端队列和列表)
关联容器:用索引快速提取元素(集合和映射)
使用不同的容器,需要包含不同的头文件
2.迭代器(iterator):
迭代器提供了顺序访问容器中每个元素的方法
①指针和迭代器的关系:指针本身是一种迭代器,迭代器是泛化的指针
②s.begin()指向s的第一个元素,s.end()指向s的最后一个元素的下一个位置
③使用STL中特有的迭代器时,要包含头文件 iterator
3.函数对象
函数对象是一个行为类似函数的对象,对它可以像调用函数一样调用。
①所有函数和重载了()运算符的类的对象都可以作为函数对象来调用,函数对象是泛化的函数
②使用STL的函数对象,需要包含头文件
③negate typename ()函数可以返回参数的相反数
4.算法
使用STL自带的算法,需要包含头文件 algorithm