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
Ir a la versión completa