d08 ex01 change addnumber(range) to match official container way of doing it
This commit is contained in:
@@ -75,15 +75,28 @@ void Span::addNumber(int nb) {
|
|||||||
_sort.push_back(nb);
|
_sort.push_back(nb);
|
||||||
std::sort(_sort.begin(), _sort.end());
|
std::sort(_sort.begin(), _sort.end());
|
||||||
}
|
}
|
||||||
void Span::addNumber(int * arr, unsigned int len) {
|
//void Span::addNumber(int * arr, unsigned int len) {
|
||||||
for (unsigned int i = 0; i < len; i++) {
|
// 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)
|
if (_container.size() >= _max)
|
||||||
throw std::out_of_range(B_RED "out of range number" RESET);
|
throw std::out_of_range(B_RED "out of range number" RESET);
|
||||||
_container.push_back(arr[i]);
|
_container.push_back(*first);
|
||||||
_sort.push_back(arr[i]);
|
_sort.push_back(*first);
|
||||||
}
|
}
|
||||||
std::sort(_sort.begin(), _sort.end());
|
std::sort(_sort.begin(), _sort.end());
|
||||||
}
|
}
|
||||||
|
template void Span::addNumber<int*>(int*, int*);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -17,7 +17,9 @@ public:
|
|||||||
Span & operator=( Span const & rhs );
|
Span & operator=( Span const & rhs );
|
||||||
|
|
||||||
void addNumber(int nb);
|
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 shortestSpan();
|
||||||
unsigned int longestSpan();
|
unsigned int longestSpan();
|
||||||
|
|||||||
@@ -213,7 +213,8 @@ int main() {
|
|||||||
for (unsigned int i = 0; i < len; i++)
|
for (unsigned int i = 0; i < len; i++)
|
||||||
arr[i] = rand() % 100;
|
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 << B_BLUE "sp :" RESET "\n";
|
||||||
std::cout << sp << "\n";
|
std::cout << sp << "\n";
|
||||||
@@ -231,7 +232,8 @@ int main() {
|
|||||||
for (unsigned int i = 0; i < len; i++)
|
for (unsigned int i = 0; i < len; i++)
|
||||||
arr[i] = rand() % (10000000000000);
|
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 << B_BLUE "sp :" RESET "\n";
|
||||||
std::cout << sp << "\n";
|
std::cout << sp << "\n";
|
||||||
@@ -253,7 +255,8 @@ int main() {
|
|||||||
arr[i] *= -1;
|
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 << B_BLUE "sp :" RESET "\n";
|
||||||
std::cout << sp << "\n";
|
std::cout << sp << "\n";
|
||||||
|
|||||||
BIN
d08/ex01/span
BIN
d08/ex01/span
Binary file not shown.
Reference in New Issue
Block a user