d08 ex01 change addnumber(range) to match official container way of doing it

This commit is contained in:
hugogogo
2022-03-14 11:18:25 +01:00
parent 685806cdfd
commit 2f90a1ee13
4 changed files with 26 additions and 8 deletions

View File

@@ -75,15 +75,28 @@ void Span::addNumber(int nb) {
_sort.push_back(nb);
std::sort(_sort.begin(), _sort.end());
}
void Span::addNumber(int * arr, unsigned int len) {
for (unsigned int i = 0; i < len; i++) {
//void Span::addNumber(int * arr, unsigned int len) {
// for (unsigned int i = 0; i < len; i++) {
// if (_container.size() >= _max)
// throw std::out_of_range(B_RED "out of range number" RESET);
// _container.push_back(arr[i]);
// _sort.push_back(arr[i]);
// }
// std::sort(_sort.begin(), _sort.end());
//}
template <class InputIterator>
void Span::addNumber(InputIterator first, InputIterator last) {
if (last < first)
throw std::out_of_range(B_RED "bad iterators" RESET);
for (; first != last; first++) {
if (_container.size() >= _max)
throw std::out_of_range(B_RED "out of range number" RESET);
_container.push_back(arr[i]);
_sort.push_back(arr[i]);
_container.push_back(*first);
_sort.push_back(*first);
}
std::sort(_sort.begin(), _sort.end());
}
template void Span::addNumber<int*>(int*, int*);

View File

@@ -17,7 +17,9 @@ public:
Span & operator=( Span const & rhs );
void addNumber(int nb);
void addNumber(int * arr, unsigned int size);
// void addNumber(int * arr, unsigned int size);
template <class InputIterator>
void addNumber(InputIterator first, InputIterator last);
unsigned int shortestSpan();
unsigned int longestSpan();

View File

@@ -213,7 +213,8 @@ int main() {
for (unsigned int i = 0; i < len; i++)
arr[i] = rand() % 100;
sp.addNumber(arr, len);
//sp.addNumber(arr, len);
sp.addNumber(arr, &arr[len]);
std::cout << B_BLUE "sp :" RESET "\n";
std::cout << sp << "\n";
@@ -231,7 +232,8 @@ int main() {
for (unsigned int i = 0; i < len; i++)
arr[i] = rand() % (10000000000000);
sp.addNumber(arr, len);
//sp.addNumber(arr, len);
sp.addNumber(arr, &arr[len]);
std::cout << B_BLUE "sp :" RESET "\n";
std::cout << sp << "\n";
@@ -253,7 +255,8 @@ int main() {
arr[i] *= -1;
}
sp.addNumber(arr, len);
//sp.addNumber(arr, len);
sp.addNumber(arr, &arr[len]);
std::cout << B_BLUE "sp :" RESET "\n";
std::cout << sp << "\n";

Binary file not shown.