Distance between istream_iterators
问题 I am trying to count the amount of elements read by std::cin by using std::distance for the constructor argument of a vector in advance, like so: // 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(...); Obviously I can complete this in one step with std::copy , but that would require setting a size beforehand. My