STL六大组件包括容器,算法,迭代器,分配器,函数式,适配器。
核心是容器+算法,迭代器是连接容器和算法的桥梁。分配器是为容器分配存储空间。函数式是辅助算法的工具。适配器有三种,容器适配器,迭代器适配器和函数式适配器。它对容器,迭代器,函数式进行适当修改,以满足需要。
示例
#include<vector>
#include<algorithm>
#include<functional>
#include<iostream>
using namespace std;
int main()
{
int ia[6] = {27, 210, 12, 47, 109, 83};
vector<int, allocator<int>> vi{ia, ia + 6}; //vector是顺序容器,allocator<int>表示容器按照int类型分配内存。
cout << count_if(vi.begin(), vi.end(), //count_if是算法,表示如果容器元素满足条件,就计数加一,输出最后的计数值;vi.begin()和vi.end()是迭代器,左闭右开
not1(bind2nd(less<int>(), 40))); //less<int>()是函数式,表示容器元素小于某个值。not1是适配器,表示小于;bind2nd表示绑定第二个整数。整个条件表示元素不比40小的元素的计数。
return 0;
}