list<char> l; char c; while ((cin >> c) != EOF) l.push_back(c);
list<char> l; istream_iterator<char> i(cin); while (i != istream_iterator<char>()) l.push_back(*i++))
istream_iterator<t>(istream &)
- return an iterator
istream_iterator<t>()
- return the end iterator
*
- read the next value
++
- go to the next value
==
- iterator equality, but oddly
t
must have operator >>
defined
ostream_iterator<t>(istream &)
- return an iterator
ostream_iterator<t>(istream &, const char *)
- return an iterator
ostream_iterator<t>()
- return the end iterator
*
- write the next value
*(++) - does nothing
t
must have operator <<
defined
vector<char> strs(istream_iterator<char>(cin), istream_iterator<char>())
is illegal
const_iterator
*
operators don't apply to const iterators - no writing
*i = v
is a compile time error if i
is a const iterator
list<t>::iterator li = l.begin(); list<t>::const_iterator cli = li;
const list<t> l(s, e); list<t>::const_iterator cli = l.begin();
const list<int> il(10); list<int>::iterator cil = il.begin(); --------------------------^ cxx: Error: t.cc, line 5: no suitable user-defined conversion from "std::list<int, std::allocator<int>>::const_iterator" to "std::list<int, std::allocator<int>>::iterator" exists
const_cast<T>(v)
const list<int> il(10); list<int>::iterator cil = const_cast<list<int>::iterator>(il.begin());
This page last modified on 6 July 2000.