title: Containers and iterators (multiple choice)
body: <p>STL iterators are used with container classes and are conceptually similar to pointers to speciﬁc elements stored in the container.</p>
  
  <p>One of the statements below is true. Which one?</p>
  
  <ol>
  <li>An iterator typically holds an address (pointer), and operator++ applied to the iterator always increases that address.</li>
  <li>When iterator <code>it</code> goes out of scope in a program, <code>it</code> gets destructed, which automatically invokes <code>delete it</code>;.</li>
  <li>For a valid STL container myC, when the expression myC.end()-myC.begin() is well-deﬁned, it returns the same value as myC.size().</li>
  <li>When a container goes out of scope, all iterators that point to it are automatically modiﬁed.</li>
  <li>For a valid STL container myC, the iterator returned by myC.end() refers to the last valid element in myC.</li>
  </ol>
  
  <p>Apparently the solution is 3. but I don't understand why.  Can someone elaborate on why this is the case, and possibly show why the others are false as well?</p>