Programación General > C/C++

 Error con map y copy

(1/1)

Sankara:
Hola,

Mi problema es el siguiente,
por un lado tengo una clase que tiene como campo protegido un diccionario que guarda un string como clave y un entero
map<string, int> p;

ahora, en una función, necesito mostrar todos los datos de ese diccionario utilizando un copy (necesariamente tiene que ser un copy)

void miclase::ImprimeDatos(ostream & out) const
{

copy(p.begin(), p.end(), ostream_iterator<pair<string,int>>(out, "n"));

}

No compila esa línea del copy, para intentar solucionarlo, sobrecargué el operador de salida de miclase para que imprimiera pares, lo hice así:

ostream & operator<< (ostream out, const std::pair<string, int>& x){
return out << x.first<<x.second;}

Me sigue dando error

¿Alguien me ayuda?

seba7:
Prueba usar otra funcion en vez de copy y la sobrecarga.
Yo usaria for_each

podria ser:

void pantallazo(pair &x){
out << x.first<<x.second;
}

void miclase::ImprimeDatos(ostream & out) const
{

for_each(p.begin(), p.end(),pantallazo);

}

Navegación

[0] Índice de Mensajes

Ir a la versión completa