   std::list end()
  Hey I have a list of structs called Bombs.  Anyway suppose I want have an extra std::list<Bomb>::iterator that points to the last node of the list and then after new nodes are appended to the end of the list or wherever, that iterator will still point to that node that used to be the last node in the list.What I did was make it equal to list.end() and then I did iterator-- because I think the "end" node isn't actually a node, it's just something that apes the functionality of the ->next==NULL pointer in the last node of a homemade linked list.  So I think iterator-- gets it to the real last node.  And then later whenever I feel like it I can call list.erase(std::list<Bomb>::iterator iteratorname) and that will kill that node.That's what I did and it seems to be working.  Did I do it right?  I never used STL before.   
  std::list is already double ended - you can use reverse iterators to step from the end of the list (rbegin()) to the beginning (rend()).Your solution may well work, but it's hacky and ugly, and is not necessary when you can use rbegin() to do the same thing.   ;  If you want to erase the last element in a list, I believe there's pop_back() for that. If you just want to access the last element, then there's back().   