Last active
August 29, 2015 14:00
-
-
Save pr00thmatic/71ae3961e714824072d8 to your computer and use it in GitHub Desktop.
genericidad en C++ : Recorriendo un vector cualquiera, y ejecutando un procedimiento cualquiera con cada uno de sus elementos :D
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <string> | |
#include <vector> | |
#include <iostream> | |
using namespace std; | |
template<typename _devolver_, typename _tipoVector_> | |
_devolver_ recorrer(vector<_tipoVector_> V, | |
_devolver_ procedimiento(int, //indice | |
_devolver_, //la respuesta anterior | |
vector<_tipoVector_>)) { //el vector | |
_devolver_ response; | |
for(int i=0; i<V.size(); i++) { | |
response = procedimiento(i, response, V); | |
} | |
return response; | |
} | |
int indiceDeLaCadenaMasLarga(int actual, int anterior, vector<string> cadenas) { | |
if(cadenas[actual].length() > cadenas[anterior].length()) | |
return actual; | |
return anterior; | |
} | |
template<typename _imprimible_> | |
int imprimir(int i, int trash, vector<_imprimible_> V) { | |
cout << V[i] << endl; | |
return 0; | |
} | |
int main() { | |
vector<string> cadenas(5); | |
cadenas[0] = ":P"; | |
cadenas[1] = "(>'-')>"; | |
cadenas[2] = "·w·"; | |
cadenas[3] = "=·w·="; | |
cadenas[4] = "XD"; | |
cout << recorrer(cadenas, indiceDeLaCadenaMasLarga) << endl; | |
recorrer<int>(cadenas, imprimir); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
:O