Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: pilo312 en 28 Mayo 2016, 00:24 am



Título: Algoritmo genérico
Publicado por: pilo312 en 28 Mayo 2016, 00:24 am
Hola, la siguiente plantilla calcula la división de números seguidos, mi duda es como puedo hacer lo mismo pero sin ocupar "iterator_traits", ojalá alguien pudiera ayudar, gracias.

Código
  1. #include <iostream>
  2. #include <numeric>
  3. #include <vector>
  4.  
  5. using namespace std;
  6.  
  7. template <class entrada,class salida> salida division_adyacente(entrada primero,entrada ultimo,salida resultado)
  8. {
  9.  if (primero!=ultimo) {
  10.    typename iterator_traits<entrada>::value_type valor,anterior;
  11.    *resultado = anterior = *primero;
  12.    while (++primero!=ultimo) {
  13.      valor = *primero;
  14.      *++resultado = valor / anterior;
  15.      anterior = valor;
  16.    }
  17.    ++resultado;
  18.  }
  19.  return resultado;
  20. }
  21.  
  22. int main(){
  23.    vector<double> v{1,3,6,9,4.5};
  24.    division_adyacente(v.begin(),v.end(),v.begin());
  25.    for(vector<double>::iterator it=v.begin();it!=v.end();it++)
  26.        cout<<*it<<" ";
  27.    return 0;
  28. }
  29.