title: Iterator equivalent to null pointer?
body: <p>In an algorithm I'm currently implementing, I need to manipulate a std::list of struct T.
  T holds a reference to another instance of T, but this reference can also be "unassigned".
  At first, I wanted to use a pointer to hold this reference, but using an iterator instead makes it easier to remove from the list.</p>
  
  <p>My question is : how to represent the equivalent to null pointer with my iterator? </p>
  
  <p>I read general solution is to use myList.end(), but in my case, I need to test whether the iterator is "null" or not, and I may add or remove elements to the list between the moment when I store the iterator and the moment I remove it from list... Should I make the iterator point to a known list containing the "null" element? Or is there a more elegant solution?</p>