首页 > STL编程 > STL reverse_iterator示例代码2

STL reverse_iterator示例代码2

 先看一段代码:

#include <iostream>
#include <deque>
#include <algorithm>
#include <iterator>
using namespace std;

void print(int elem)
{
	cout << elem << ' ';
}

int main()
{
	deque<int> coll;
	
	for(int i = 1; i <= 9; ++i)
	{
		coll.push_back(i);
	}
	
	deque<int>::iterator pos1;
	pos1 = find(coll.begin(), coll.end(), 2);

	deque<int>::iterator pos2;
	pos2 = find(coll.begin(), coll.end(), 7);
	
	for_each(pos1, pos2, print);
	cout << endl;
	
	deque<int>::reverse_iterator rpos1(pos1);
	deque<int>::reverse_iterator rpos2(pos2);
	
	for_each(rpos2, rpos1, print);
	cout << endl;

	return 0;
}

 代码首先在一个deque中插入1到9,然后查找元素值为2和7的位置,分别赋值给迭代器pos1和pos2,然后输出,由于STL中的操作总是左开右闭的区间,所以输出2 3 4 5 6,7不会输出。

接下来将迭代器转换成逆向迭代器,再次输出。输出6 5 4 3 2,下面的图片解释的很清楚。

图示

如果还不明白,可以看看这篇关于逆向迭代器的介绍的文章:http://www.programlife.net/stl-reverse-iterator.html


觉得文章还不错?点击此处对作者进行打赏!


本文地址: 程序人生 >> STL reverse_iterator示例代码2
作者:代码疯子(Wins0n) 本站内容如无声明均属原创,转载请保留作者信息与原文链接,谢谢!


更多



分类: STL编程 标签: , , ,