37typedef std::list<std::string, std::allocator<std::string> >
StringList;
44 const std::ostream::sentry guard (
out);
50 for (StringList::const_iterator
i = l.begin ();
i != l.end (); ++
i) {
53 const std::streamsize
n =
54 out.rdbuf ()->sputn ((*i).data (), (*i).size ());
57 if ( std::streamsize ((*i).size ()) !=
n
58 || std::ostream::traits_type::to_int_type (
' ')
59 !=
out.rdbuf ()->sputc (
' ')) {
62 out.setstate (std::ios::badbit);
78 critters.insert (critters.begin (),
"antelope");
79 critters.insert (critters.begin (),
"bear");
80 critters.insert (critters.begin (),
"cat");
83 std::cout << critters <<
'\n';
86 *std::find (critters.begin (),critters.end (),
"cat") =
"cougar";
87 std::cout << critters <<
'\n';
91 critters.push_front (
"zebra");
92 critters.insert (std::find (critters.begin (), critters.end (),
93 "antelope"),
"ocelot");
94 critters.push_back (
"rat");
95 std::cout << critters <<
'\n';
101 std::cout << critters <<
'\n';
104 StringList::size_type half = critters.size () / 2;
105 for (StringList::size_type
i = 0;
i != half; ++
i)
106 critters.erase (critters.begin ());
108 std::cout << critters <<
'\n';
std::list< std::string, std::allocator< std::string > > StringList
std::ostream & operator<<(std::ostream &out, const StringList &l)