]>
Commit | Line | Data |
---|---|---|
7c673cae FG |
1 | .. Copyright David Abrahams 2006. Distributed under the Boost |
2 | .. Software License, Version 1.0. (See accompanying | |
3 | .. file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) | |
4 | ||
5 | Example | |
6 | ....... | |
7 | ||
8 | The following example prints an array of characters in reverse order | |
9 | using ``reverse_iterator``. | |
10 | ||
11 | :: | |
12 | ||
13 | char letters_[] = "hello world!"; | |
14 | const int N = sizeof(letters_)/sizeof(char) - 1; | |
15 | typedef char* base_iterator; | |
16 | base_iterator letters(letters_); | |
17 | std::cout << "original sequence of letters:\t\t\t" << letters_ << std::endl; | |
18 | ||
19 | boost::reverse_iterator<base_iterator> | |
20 | reverse_letters_first(letters + N), | |
21 | reverse_letters_last(letters); | |
22 | ||
23 | std::cout << "sequence in reverse order:\t\t\t"; | |
24 | std::copy(reverse_letters_first, reverse_letters_last, | |
25 | std::ostream_iterator<char>(std::cout)); | |
26 | std::cout << std::endl; | |
27 | ||
28 | std::cout << "sequence in double-reversed (normal) order:\t"; | |
29 | std::copy(boost::make_reverse_iterator(reverse_letters_last), | |
30 | boost::make_reverse_iterator(reverse_letters_first), | |
31 | std::ostream_iterator<char>(std::cout)); | |
32 | std::cout << std::endl; | |
33 | ||
34 | ||
35 | ||
36 | The output is:: | |
37 | ||
38 | original sequence of letters: hello world! | |
39 | sequence in reverse order: !dlrow olleh | |
40 | sequence in double-reversed (normal) order: hello world! | |
41 | ||
42 | ||
43 | The source code for this example can be found `here`__. | |
44 | ||
45 | __ ../example/reverse_iterator_example.cpp |