forked from boostorg/iterator
		
	
		
			
				
	
	
		
			42 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			42 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
// (C) Copyright Jeremy Siek 2000-2004.
 | 
						|
// Distributed under the Boost Software License, Version 1.0. (See
 | 
						|
// accompanying file LICENSE_1_0.txt or copy at
 | 
						|
// http://www.boost.org/LICENSE_1_0.txt)
 | 
						|
 | 
						|
#include <boost/config.hpp>
 | 
						|
#include <iostream>
 | 
						|
#include <algorithm>
 | 
						|
#include <boost/iterator/reverse_iterator.hpp>
 | 
						|
#include <boost/cstdlib.hpp>
 | 
						|
 | 
						|
int main(int, char*[])
 | 
						|
{
 | 
						|
  char letters_[] = "hello world!";
 | 
						|
  const int N = sizeof(letters_)/sizeof(char) - 1;
 | 
						|
  typedef char* base_iterator;
 | 
						|
  base_iterator letters(letters_);
 | 
						|
  
 | 
						|
  std::cout << "original sequence of letters:\t\t\t"
 | 
						|
            << letters_ << std::endl;
 | 
						|
 | 
						|
  // Use reverse_iterator to print a sequence of letters in reverse
 | 
						|
  // order.
 | 
						|
  
 | 
						|
  boost::reverse_iterator<base_iterator>
 | 
						|
    reverse_letters_first(letters + N),
 | 
						|
    reverse_letters_last(letters);
 | 
						|
 | 
						|
  std::cout << "sequence in reverse order:\t\t\t";
 | 
						|
  std::copy(reverse_letters_first, reverse_letters_last,
 | 
						|
            std::ostream_iterator<char>(std::cout));
 | 
						|
  std::cout << std::endl;
 | 
						|
 | 
						|
  std::cout << "sequence in double-reversed (normal) order:\t";
 | 
						|
  std::copy(boost::make_reverse_iterator(reverse_letters_last),
 | 
						|
            boost::make_reverse_iterator(reverse_letters_first),
 | 
						|
            std::ostream_iterator<char>(std::cout));
 | 
						|
  std::cout << std::endl;
 | 
						|
 | 
						|
  return boost::exit_success;
 | 
						|
}
 |