title: Can I have a C++ map where multiple keys reference the value without using pointers?
body: <p>From a C background I find myself falling back into C habits where there is generally a better way. In this case I can't think of a way to do this without pointers.</p>
  
  <p>I would like</p>
  
  <pre><code>struct foo {
      int i;
      int j;
  };
  
  mymap['a'] = foo
  mymap['b'] = bar
  </code></pre>
  
  <p>As long as only one key references a value mymap.find will return a reference so I can modify the value, but if I do this:</p>
  
  <pre><code>mymap['c'] = mymap.find('a') // problematic because foo is copied right?
  </code></pre>
  
  <p>The goal is to be able to find 'a' or 'c' modify foo and then the next find of 'a' or 'c' will show the updated result.</p>