[C con Clase] En relación a map.

Davidson, Steven srd4121 en njit.edu
Sab Dic 28 19:01:31 CET 2013


Hola Miguel Ángel,

2013/12/28 Miguel Ángel Torres Fernández-Píñar <
miguelangeltorresfp en gmail.com>

> Buenos días, esta pregunta es muy cortita.
>
> Hay algún tipo de contenedor en el que pueda almacenar parejas de objetos,
> pero que luego pueda buscar por cualquiera de ellos ???
>
> 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 ???
>

Creo que es más sencillo usar iteradores y hacer la búsqueda tú mismo. Por
ejemplo,

class A {...};
class B {...};
...
std :: map<A,B> mapaAB;
A obj;

std :: vector listaClaves;

for( std :: map<A,B> :: const_iterator cit = mapaAB.begin(); cit !=
mapaAB.end(); cit++ )
  if( (*cit).second == obj )  // Comparamos valores del mapa
    listaClaves.push_back( (*cit).first );  // Guardamos las claves de los
objetos que hemos encontrado

Es posible que tengas que definir el operador == para comparar objetos.


Espero que esto te sirva.

Steven
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20131228/1f33d379/attachment.html>


Más información sobre la lista de distribución Cconclase