存档

文章标签 ‘迭代器’

STL笔记之迭代器

2014年6月14日 2 条评论

迭代器(iterator)是STL里面很基础也很重要的一个东西,迭代器的traits技术设计的很棒(在上一篇文章《STL笔记之空间配置器》中提到destroy函数使用了traits技术来判断对象是否具有trivial destructor,然后通过重载自动选择合适的实现版本)。
迭代器是一种行为类似指针的对象,因为指针最常用的是->和*两个操作符,因此迭代器最重要的编程工作也是对这两个操作符的重载的实现。
1. 初探traits技术
假设现在定义了这样一个迭代器MyIter,当我们拿到一个MyIt[......]

继续阅读

STL reverse_iterator和iterator之间的转换

2010年9月25日 没有评论

迭代器(iterator)转逆向迭代器(reverse_iterator),只需要把迭代器转入逆向迭代器的构造函数即可;逆向迭代器转迭代器,调用逆向迭代器的base成员函数即可。
这是关于逆向迭代器的最后一篇介绍。前面已经发布两篇了,分别是:
http://www.programlife.net/stl-reverse-iterator.html
http://www.programlife.net/stl-reverse-iterator-2.html
SGI的逆向迭代器的介绍如下:http:[......]

继续阅读

STL逆向迭代器——reverse iterator

2010年9月22日 8 条评论

Reverse iterators are adapters that redefine increment and decrement operators so that they behave in reverse. Thus, if you use these iterators instead of ordinary iterators, algorithms process elements in reverse order. All standard container classe[......]

继续阅读

STL迭代器辅助函数——distance

2010年9月22日 没有评论

advance用于给迭代器增加或者减少一定的距离,而distance则用于求出迭代器之间的距离,下面是一个例子:
#include <iostream>
#include <list>
#include <algorithm>
#include <iterator>
using namespace std;

int main()
{
list<int> coll;

for(int i = -3; i &lt[......]

继续阅读

分类: STL编程 标签: , ,

STL迭代器辅助函数——advance

2010年9月22日 没有评论

Advance(i, n) increments the iterator i by the distance n. If n > 0 it is equivalent to executing ++i n times, and if n < 0 it is equivalent to executing –i n times. If&nbsp[......]

继续阅读

分类: STL编程 标签: , ,

C++ STL 流迭代器

2010年9月8日 没有评论

 C++流迭代器。
#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
using namespace std;

int main()
{
vector<string> coll;
copy(istream_iterator<string>(cin), // start of source
[......]

继续阅读

分类: STL编程 标签: , ,