Algoritmo genérico

Iniciado por pilo312, 28 Mayo 2016, 00:24 AM

0 Miembros y 1 Visitante están viendo este tema.

pilo312

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 (cpp) [Seleccionar]
#include <iostream>
#include <numeric>
#include <vector>

using namespace std;

template <class entrada,class salida> salida division_adyacente(entrada primero,entrada ultimo,salida resultado)
{
  if (primero!=ultimo) {
    typename iterator_traits<entrada>::value_type valor,anterior;
    *resultado = anterior = *primero;
    while (++primero!=ultimo) {
      valor = *primero;
      *++resultado = valor / anterior;
      anterior = valor;
    }
    ++resultado;
  }
  return resultado;
}

int main(){
    vector<double> v{1,3,6,9,4.5};
    division_adyacente(v.begin(),v.end(),v.begin());
    for(vector<double>::iterator it=v.begin();it!=v.end();it++)
        cout<<*it<<" ";
    return 0;
}