Output Iterator
Output iterator steps forward with write access and is provided by ostream and inserter
Key Facts
Gyroscopic Couple: The rate of change of angular momentum () = (In the limit).- = Moment of Inertia.
- = Angular velocity
- = Angular velocity of precession.
Blaise Pascal (1623-1662) was a French mathematician, physicist, inventor, writer and Catholic philosopher.
Leonhard Euler (1707-1783) was a pioneering Swiss mathematician and physicist.
Description
Output iterator moves forward and may store but not retrieve values, provided byostream
and inserter
.
Output iterator allows you to assign new values only element-by-element. Therefore, we can't use an output iterator to iterate twice over the same range.
Note! No comparison operations are required for output iterators. You can't check if an output iterator is valid or if a "writing" was successful.Operations
Expression | Description |
---|---|
*i=val | Writes val to where the iterator refers |
++i | Steps forward and returns new position (when not null) |
i++ | Steps forward and returns old position (when not null) |
TYPE(i) | Copies iterator (copy constructor) |
References
- http://www.tenouk.com/
- Nicolai M. Josuttis: "The C++ Standard Library"
Example:
Example - creation of a deque using output iterator
Problem
The following example of program illustrates creation of a deque using output iterator.
Workings
#include <iostream> using std::cout; using std::endl; #include <deque> // deque class-template definition #include <algorithm> // copy algorithm #include <iterator> // ostream_iterator int main() { std::deque< int > values; // create deque of type int std::ostream_iterator< int > output(cout, " "); values.push_front(2); values.push_front(3); values.push_back(1); cout << "values contains: "; // use subscript operator to obtain elements of values for ( int i = 0; i < values.size(); i++ ) cout << values[i] << ' '; cout << endl; return 0; }
Solution
Output:
values contains: 3 2 1
values contains: 3 2 1
References