「🔨」 fix(ex01/ex02): fixed things that i forgot to do
This commit is contained in:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user