您的位置:首页 > 其它

STL基础(三)

2016-07-10 00:18 197 查看
Iterator 迭代器

能够让迭代器与算法不干扰的相互发展,最后又能无间隙的粘合起来。

重载了*,++,==,!=,=运算符,用以操作复杂的数据结构。

容器提供迭代器,算法使用迭代器。

迭代器的分类:

不同容器提供自己的迭代器,所以不同迭代器具有不同的能力。



这幅图与之前博客所说的一致。

Iterator Adaptor (迭代器适配器)

提供和Iterator相同的接口,但是改变内部的实现方法。

分类:

insert iterator

stream iterator

reverse iterator

注: 接口还是迭代器的接口,前缀描述了迭代器的内部实现。

STL 提供的另外两种容器queue,stack,其实都只不过是一种Adaptor,它们简单地修饰deque的界面而成为另外的容器类型。

Algorithm 算法

泛型算法通则:

所有算法的前两个参数都是一对Iterators:[first,last),用来指出容器一个范围内的元素。

每个算法的声明中,都表明出他所需要的最低层次的Iterator类型。

大部分算法都可以用Function Object来更改准则。

vector< int > ivec;
ivec.push_back(3);
ivec.push_back(2);
ivec.push_back(1);
vector< int > ivec2(ivec.begin(),ivec.end());
sort(ivec.begin(),ivec.end(),great<int>());
sort(ivec.begin(),ivec.end(),less<int>());








内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: