1、概述
前面我简单的整理了STL的概述,便一直对STL没有在进行整理。其主要原因是STL的源码实在是太深奥了,我的微末道行,还不能完全的看明白,虽然我已经看了两遍,但是掌握的程度是在是让人汗颜。今天整理呢,就是觉得不能因为难就不前进了,困难还是要克服的,想当初看《深入了解计算机系统》也很痛苦,看完之后感觉自己重新认识了计算机。整理呢也不是全部一口气整理,我会循序渐进,先易后难。
2、仿函数定义及作用
仿函数就是函数对象,只不过仿函数是早起的名字,而函数对象是 C++ 标准规范的名字。就实现意义而言,“函数对象” 比较贴切:一种具有函数特质的对象。不过就行为而言,仿函数比较突出:仿函数可以由调用者像函数一样调用。如:
class MyAdd
{
public:
int operator()(int a, int b) { return a + b; } //重载了()运算符
};
int main(int argc, char** argv)
{
MyAdd abcd;
cout << MyAdd()(4,5) << endl; //通过产生临时对象,进行调用
cout << abcd(3, 4) << endl; //先定义一个函数对象,通过函数对象进行调用
}
STL提供的算法一般有两个版本。其中一个版本表现出最直观的某种操作,还有一个版本则表现出最泛化的