STL
C++标准库的重要组成部分,不仅是一个可复用的组件库,还是一个包含数据结构和算法的软件框架
STL的六大组件
- 序列式容器:string、vector、list、deque、array(C++11)、forward_list(C++11)
- 关联式容器:set、multiset、unordered_set、unordered_multiset、map、multimap、unordered_map、unordered_multimap
STL算法有上百种,我们常用算法有sort、find、copy等,从实现的角度来说算法是一种function template(函数模板)
- 迭代器提供一种方法能够访问容器的各个元素,从而不需要暴露容器背部,是容器与算法的粘合剂
- 从实现的角度来看,迭代器是将operator*、operator->、operator++、operator--、operator==等指针操作重载的class template(类模板)
- 每种容器都有自己的迭代器,这些迭代器能够了解容器内部的数据结构
仿函数是一种行为类似函数,但实际是重载了operator()的类或类模板
#include <iostream>
using namespace std;
class Add
{
public:
int operator()(int x, int y){
return x + y;
}
};
int main()
{
Add a;
cout << a(3, 4) << endl;
return 0;
}