Standard C++ Library Class Reference
 #include <string>
 #include <iostream.h>
 // Print out a list of strings
 ostream& operator<<(ostream& out, const list<string>& l)
 {
 copy(l.begin(), l.end(), ostream_iterator<string>(cout," "));
 return out;
 }
 int main(void)
 {
 // create a list of critters
 list<string> critters;
 int i;
 // insert several critters 
 critters.insert(critters.begin(),"antelope");
 critters.insert(critters.begin(),"bear");
 critters.insert(critters.begin(),"cat");
 // print out the list
 cout << critters << endl;
 // Change cat to cougar
 *find(critters.begin(),critters.end(),"cat") = "cougar";
 cout << critters << endl;
 // put a zebra at the beginning 
 // an ocelot ahead of antelope
 // and a rat at the end
 critters.push_front("zebra");
 critters.insert(find(critters.begin(),critters.end(),
 "antelope"),"ocelot");
 critters.push_back("rat");
 cout << critters << endl;
 // sort the list (Use list's sort function since the 
 // generic algorithm requires a random access iterator 
 // and list only provides bidirectional)
 critters.sort();
 cout << critters << endl;
 // now let's erase half of the critters
 int half = critters.size() >> 1;
 for(i = 0; i < half; ++i) {
 critters.erase(critters.begin());
 }
 cout << critters << endl;
 return 0;
 }
Output : 
cat bear antelope
cougar bear antelope
zebra cougar bear ocelot antelope rat
antelope bear cougar ocelot rat zebra
ocelot rat zebra










