<div dir="ltr">Hola Miguel Ángel,<div class="gmail_extra"><br><div class="gmail_quote">2013/12/28 Miguel Ángel Torres Fernández-Píñar <span dir="ltr"><<a href="mailto:miguelangeltorresfp@gmail.com" target="_blank">miguelangeltorresfp@gmail.com</a>></span><br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr"><div><div><div><div>Buenos días, esta pregunta es muy cortita.<br>
<br></div>Hay algún tipo de contenedor en el que pueda almacenar parejas de objetos, pero que luego pueda buscar por cualquiera de ellos ???<br>
<br></div>Es decir, un "map" me permite buscar por el campo que sea la clave, pero cómo podría hacer para buscar también por el otro valor ???<br></div></div></div></blockquote><div><br></div><div>Creo que es más sencillo usar iteradores y hacer la búsqueda tú mismo. Por ejemplo,</div>
<div><br></div><div>class A {...};</div><div>class B {...};<br></div><div>...</div><div>std :: map<A,B> mapaAB;<br></div><div>A obj;</div><div><br></div><div>std :: vector listaClaves;</div><div><br></div><div>for( std :: map<A,B> :: const_iterator cit = mapaAB.begin(); cit != mapaAB.end(); cit++ )<br>
  if( (*cit).second == obj )  // Comparamos valores del mapa<br>    listaClaves.push_back( (*cit).first );  // Guardamos las claves de los objetos que hemos encontrado</div><div><br></div><div>Es posible que tengas que definir el operador == para comparar objetos.</div>
<div><br></div><div><br></div><div>Espero que esto te sirva.</div><div><br></div><div>Steven</div><div><br></div></div></div></div>