STL(1) STL基础
目录
- 标准库和STL
- STL的六大部件
标准库和STL
STL代表standard template library,STL是标准库的一个子集,大概占有其中50-70%
STL的六大部件
- 容器 containers
- 分配器 allocators
- 算法 algorithms
- 迭代器 iterators
- 适配器 adapters
- 仿函数 functors
容器需要放东西,需要分配内存,所以背后使用分配器来支持这个容器的内存管理
算法是一系列操作容器外部函数,是另外一组,并不在容器之中。这里和面向对象不同,是一种泛型编程的概念
算法和容器的桥梁:迭代器,一种泛化的指针
仿函数:作用就像函数
适配器:帮助我们转换,比如容器适配器,将容器转换为我们需要的结构
部件的使用:
#include<algorithm>
#include<vector>
#include<functional>
#include<iostream>
using namespace std;
int main()
{
int ia[6] = { 27,210,12,47,109,93 };
vector<int, allocator<int>> vi(ia, ia + 6);
cout << count_if(vi.begin(), vi.end(),
not1(bind2nd(less<int>(), 40)));
return 0;
}
左闭右开区间,是说,标准库规定,所有容器(不一定是连续空间)这样来表现头尾:
begin()表示元素第一个起点,end()指的是最后一个元素的下一个