c++标准库包含STL,STL包含六大部件
STL
standard template library
标准模板库
C++的含义:C语言+类+模板
STL有6大组件:
容器、算法、迭代器、适配器、分配器、仿函数
容器(container)
- 系统封装好的数据结构
- 泛型编程思想,每种数据结构都能装任意类型
- 主要是对数据结构增删改查的操作
算法(algorithm)
- 系统封装好的算法(如sort排序算法)
- 一个算法适用多种容器(泛型编程思想)
迭代器(Iterator)
迭代器相当于指针
迭代器告诉算法要执行的范围(在容器中)
分配器(allocator)
对容器的内存进行管理分配(例如vector容器的自动扩充,自动缩容等)
仿函数(functor)
仿函数:结构体或类要实现函数的功能,就要重载function call 操作符 ()
#include <iostream>
using namespace std;
class Stu{
public:
//重载()操作符
//只有函数返回true时,a的优先级才大于b
bool operator () (int a,int b){
return a>b; //此时当a>b时返回true,那么数值越大优先级越高
//return a<b; 此时当a<b时返回true,那么数值越小优先级越高
}
};
int main()
{
Stu s;
cout << s(1,2) << endl;//0
cout << s(2,1) << endl;//1
return 0;
}
容器(container)
容器类自动申请和释放内存,无需new和delete操作
结构及分类
Sequence Containers
序列式容器:按照放入元素的顺序进行排列
Array:定长数组
Vector:不定长数组
Deque:双端队列
List:双向链表
Forward-List:单向链表
Associative Containers
关联式容器:元素是以键值对的形式存在(key/value),通过key可以快速查找,因此这种容器适合大量查找
关联式容器又分为Orde