Distancia entre istream_iterators
Estoy tratando de contar la cantidad de elementos leídos porstd::cin
mediante el usostd::distance
para el argumento constructor de un vector de antemano, así:
// Gives correct amount, but now can't use to put into vector
int size = std::distance(std::istream_iterator<std::string>(std::cin),
std::istream_iterator<std::string>());
std::vector v(size);
// Already read from stream
std::copy(...);
Obviamente puedo completar esto en un solo paso constd::copy
, pero eso requeriría establecer un tamaño de antemano. Sin embargo, mi pregunta no es sobre vectores, se trata de obtener el tamaño de una entrada arbitraria usandostd::istream_iterator
Sin afectar la corriente. ¿Algunas ideas?