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;
}