首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

STL之迭代器例证二

2012-10-16 
STL之迭代器事例二/* 输入输出,正反迭代器的使用; 程序输出: Let the dice be cast! 6 7 4 5 2 6 7 10 16

STL之迭代器事例二

/*
 输入输出,正反迭代器的使用;
 程序输出:
 Let the dice be cast!
 6 7 4 5 2 6 7 10 16 5
 Implicit use of reverse iterator.
 5 16 10 7 6 2 5 4 7 6
 Explicit use of reverse iterator.
 5 16 10 7 6 2 5 4 7 6
 */
#include <iostream>
#include <iterator>
#include <vector>

using namespace std;

int main()
{
 int casts[10] = {6, 7, 4, 5, 2, 6, 7, 10, 16, 5};
 vector<int> dice(10);
 //copy from array to vector
 copy(casts, casts + 10, dice.begin());
 cout << "Let the dice be cast! \n";
 //create an ostream iterator
 ostream_iterator<int, char> out_iter (cout, " ");
 //copy from vector to output
 copy(dice.begin(), dice.end(), out_iter);
 cout << endl;
 cout << "Implicit use of reverse iterator. \n";
 copy(dice.rbegin(), dice.rend(), out_iter);
 cout <<endl;
 cout << "Explicit use of reverse iterator. \n";
 vector<int>:: reverse_iterator riter;
 for (riter = dice.rbegin(); riter != dice.rend(); ++riter)
 {
  cout << *riter << ' ';
 }

 cout << endl;
 getchar();
 return 0;
}

 

注意:

一、copy()不仅仅可以将信息从一个容器复制到另一个容器中,还可以将信息从容器复制到输出流,从输入流复制到容器中。还可以使用copy()将信息插入到另一个容器中。

二、rbegin()和end()返回相同的值(超尾),但类型不同(reverse_iterator和iterator)。rend()和begin()同理。

 

热点排行