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.