Purpose & Tutorial for how we make customized usage of `std::iterator`
<pre><code>class MainClass
{    
    class EmbeddedClass
    {...};

    class const_iterator 
      : public std::iterator&lt;std::random_access_iterator_tag, EmbeddedClass&gt; 
    {...}

    class iterator: public const_iterator
    {...};
};
</code></pre>

<p>I have seen the above design in a legacy project.</p>

<p>Question 1> What is the main purpose to design an embedded <code>class const_iterator</code> and <code>class iterator</code>?</p>

<p>Question 2> Is there a good design tutorial that illustrates how we can implement the customized <code>const_iterator</code> or <code>iterator</code> class in a professional way?</p>

<p>Thank you</p>
