🔨」 fix(ex01/ex02): fixed things that i forgot to do

This commit is contained in:
2025-08-27 16:29:09 +02:00
parent 84819b741f
commit 171a7b964b
4 changed files with 145 additions and 32 deletions

View File

@@ -1,5 +1,9 @@
#pragma once
#include <stdexcept>
#include <algorithm>
#include <iostream>
#include <limits>
#include <vector>
class Span {
@@ -12,11 +16,29 @@ public:
void addNumber(const int &);
template <typename T>
void addNumbers(const typename T::const_iterator begin, const typename T::const_iterator end)
{
unsigned int csize = this->_size;
csize += std::distance(begin, end);
if (csize > this->_max_size)
throw std::length_error("iterator too big, can't add it");
this->_data.insert(this->_data.end(), begin, end);
this->_size += std::distance(begin, end);
}
int shortestSpan(void);
int longestSpan(void);
std::size_t getSize(void) const {return _size;}
std::vector<int> getData(void) const {return _data;}
private:
std::vector<int> _data;
std::size_t _size;
std::size_t _max_size;
};
std::ostream &operator<<(std::ostream &os, const Span &s);