#pragma once #include #include class Span { public: Span(); Span(const Span& other); Span(unsigned int size); void addNumber(int number); template void addNumbers(I begin, I end) { if (numbers.size() + static_cast(std::distance(begin, end)) > size) throw std::length_error("Can't add numbers, it would exceed span size"); numbers.insert(numbers.end(), begin, end); } int shortestSpan(); int longestSpan(); Span& operator=(const Span& other); ~Span(); private: std::vector numbers; unsigned int size; };