El problema es que deseo que la plantilla busquedaLineal(T[], T) sepa automáticamente el largo del arreglo, para eso divido el espacio de memoria del arreglo con el espacio de cada uno de sus elementos "sizeof(arreglo)/sizeof(valor)", pero allí está el problema, se agradece cualquier ayuda
Código C++:
Ver original
#include <cstdlib> #include <iostream> using namespace std; template <class T> int busquedaLineal(T[], T); template <class T> int busquedaLineal(T[], T, int, int); int main(int argc, char *argv[]) { int arreglo[15] = {25,17,13,16,41,32,12,115,95,84,54,63,78,21,10}; cout<<"\nIndique el valor a buscar:\t"; int a; cin>>a; cout<<"\nEse valor está en: "<< busquedaLineal(arreglo, a); return EXIT_SUCCESS; } template <class T> int busquedaLineal(T arreglo[], T valor, int desde, int hasta) { for(int i = desde; i < hasta; i++) { if(arreglo[i] == valor) return i; } return -1; } template <class T> int busquedaLineal(T arreglo[], T valor) { int hasta = sizeof(arreglo)/sizeof(valor); return busquedaLineal(arreglo, valor, 0, hasta); }