Programación General > C/C++

 Como se utiliza Función Objeto? :( Es importante porfavor !!

(1/1)

Phass:
Hola, necesito hacer una práctica para aprobar una asignatura de la carrera en la que me piden usar una función objeto. Yo tengo el código siguiente:


--- Código: C++ ---#include <iostream>#include <vector>#include <iterator>#include <algorithm>#include <map> using namespace std; map<string,int> d; void mifuncion (pair<string, string> t){  map<string, int>::iterator i;  i = d.find(t.first);  if (i != d.end()) // Existe clave    d[t.first] += 1;  else      d.insert(i, pair<string,int>(t.first,1));}  int main (){        multimap<string, string> multi;         cout << "Vaya insertando las claves en la forma K1, K2" << endl;        cout << "Presione ctrl+z para finalizar" << endl;         string k1, k2;         while (cin >> k1)        {            cin >> k2;            multi.insert(pair<string, string>(k1, k2));        }         cout << endl << "Elementos del multidiccionario: " << endl;        for (multimap<string, string>::iterator it = multi.begin(); it != multi.end(); ++it)           {               cout << "  [" << (*it).first << ", " << (*it).second << "]" << endl;           }         for_each (multi.begin(), multi.end(), mifuncion);         cout << endl << "Elementos del diccionario: " << endl;        for (map<string, int>::iterator it = d.begin(); it != d.end(); ++it)           {               cout << "  [" << (*it).first << ", " << (*it).second << "]" << endl;           }         return 0;} 

Cómo es entonces haciéndolo con una función objeto sin necesidad de declarar el diccionario global?

Muchas gracias !!

Amilius:
Como el objeto función sólo tendría que tener un parámetro para que funcione con "for_each()" podrías crear un par que contenga el par del tipo requerido por el mapa y una referencia al mapa que quieres usar.

Navegación

[0] Índice de Mensajes

Ir a la versión completa