STL源码剖析笔记<一>

STL的六大组件

  • 容器
  • 算法
  • 迭代器
  • 仿函数
  • 配接器
  • 空间配置器

STL六大组件的相互关系,容器通过空间配置器取得数据存储空间,算法通过迭代器存取容器的内容,仿函数可以协助算法完成不同的策略变化,配接器可以修饰或者套接仿函数

我是图

GNU

GNU is Not Unix

前开后闭的区间表示[)

first指向区间第一个元素,last指向区间的最后一个元素的下一位置

1
for(iter=first;iter!=last;++iter)

##仿函数
仿函数是使用起来像函数一样的东西,如果你针对某个class进行operator()重载,这就成为勒一个仿函数。
利用仿函数可以产生临时对象以便调用

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
template<typename T>
class print
{
public:
void operator()(const T& elem)
{ cout<<elem<<' ';}
};
//使用的时候
int main(void)
{
int ia[4]={0,1,2,3};
vector<int> iv(ia,ia+4);
//print<int>()是一个临时对象
for_each(iv.begin(),iv.end(),print<int>());
return 0;
}

开头的最后

STL博大精深,临渊羡鱼,不如退而结网!