title: List with unique elements
body: <p>I need a container, where:</p>
  
  <ul>
  <li>when I add a new element that does not exist yet, it is added to the top of the list</li>
  <li>when I add an element that already exists, it is not added and I I get its index in the list</li>
  <li>once the element is inserted, it always has the same index and it can be accessed using this index</li>
  </ul>
  
  <p><code>std::set</code> alone is insufficient, because I cannot access the elements with <code>[index]</code>. <code>std::list</code> neither, because it does not store unique only elements. </p>
  
  <p>I used a mixed solution with <code>list</code> and <code>map</code> but maybe there is some standard, generic template for that?</p>
  
  <p>I don't want to use boost. Invoking <code>list::unique</code> after every insertion is no solution.</p>