masBecas Lt

Registrado: 23 Oct 2003Mensajes: 98Ubicación: La Laguna, Tenerife
|
Publicado: Jue 04 Mar, 2004 1:43 pm Asunto: Problemas con clases STL "map" y "remove_if&q |
|
|
Mi pregunta es un poco retorcida, pero espero que alguien se haya visto en una situación similar al menos.
Tengo una estructura:
| Código: |
typedef struct {
int lat;
int reg;
} TChequeo;
|
Esta estructura la uso dentro de un map:
| Código: |
map<int, TChequeo> mapaChequeo;
|
Lo q quiero es poder eliminar aquellos elementos cuyo campo lat valga 0.
He hecho mil experimentos, pero siempre me da algún error. El asunto es que debería usar la función remove_if, pero no consigo que tire de ninguna forma.
El primer problema es que hay que definir un predicado, pero eso ya lo he hecho con:
| Código: |
class chequeoLat0 {
public:
bool operator() (pair<const int, TChequeo> elem) {
return elem.second.lat == 0;
}
};
// y llamando luego a
map<int, TChequeo>::iterator it;
it = remove_if(mapaChequeo.begin(), mapaChequeo.end(), chequeoLat0());
|
Pues eso, que esto no tira de ninguna manera. Me conformo con que me respondan cualquiera de estas tres cosas:
- ¿cómo hacer q esto funcione?
- ¿cómo borrar unos elementos sin usar el remove_if?
- ¿alguna otra estructura de potencia similar a map que pueda usar?
Muchas gracias a todos por anticipado. |
|