title: How is end() implemented in STL containers?
body: <p>So when we need to traverse a container from start to end we write something like</p>
  
  <p><code>for (i = v-&gt;begin(); i != v-&gt;end(); i++)</code></p>
  
  <p>assuming <code>i</code> is an iterator for container <code>v</code>.</p>
  
  <p>My question is "what guarantees that end will always point to one past the last element in container?" How does STL ensures this behavior and is there any chance that this case is not true?</p>