aboutsummaryrefslogtreecommitdiff
path: root/cpp08
diff options
context:
space:
mode:
Diffstat (limited to 'cpp08')
-rw-r--r--cpp08/ex01/main.cpp16
-rw-r--r--cpp08/ex01/span.cpp14
-rw-r--r--cpp08/ex01/span.hpp4
-rw-r--r--cpp08/ex02/mutantstack.hpp4
4 files changed, 30 insertions, 8 deletions
diff --git a/cpp08/ex01/main.cpp b/cpp08/ex01/main.cpp
index c702748..a2fe3ba 100644
--- a/cpp08/ex01/main.cpp
+++ b/cpp08/ex01/main.cpp
@@ -6,7 +6,7 @@
/* By: charles <charles.cabergs@gmail.com> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2020/04/15 06:50:51 by charles #+# #+# */
-/* Updated: 2020/12/15 13:52:20 by cacharle ### ########.fr */
+/* Updated: 2020/12/17 14:11:02 by cacharle ### ########.fr */
/* */
/* ************************************************************************** */
@@ -32,6 +32,20 @@ int main()
std::cout << std::endl;
{
+ std::cout << "======================== NOT FIRST =======================" << std::endl;
+ Span sp = Span(5);
+ sp.addNumber(5);
+ sp.addNumber(3);
+ sp.addNumber(17);
+ sp.addNumber(10);
+ sp.addNumber(11);
+ std::cout << sp.shortestSpan() << std::endl;
+ std::cout << sp.longestSpan() << std::endl;
+ }
+
+ std::cout << std::endl;
+
+ {
std::cout << "======================== DEFAULT CONSTRUCTOR =======================" << std::endl;
Span p;
try { p.addNumber(0); } catch (std::exception &e) { std::cout << e.what() << std::endl; }
diff --git a/cpp08/ex01/span.cpp b/cpp08/ex01/span.cpp
index ab17049..4bab0fc 100644
--- a/cpp08/ex01/span.cpp
+++ b/cpp08/ex01/span.cpp
@@ -6,7 +6,7 @@
/* By: charles <charles.cabergs@gmail.com> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2020/04/15 06:57:44 by charles #+# #+# */
-/* Updated: 2020/12/15 12:11:38 by cacharle ### ########.fr */
+/* Updated: 2020/12/17 14:12:43 by cacharle ### ########.fr */
/* */
/* ************************************************************************** */
@@ -24,7 +24,7 @@ Span::Span(Span const& other)
m_under[i] = other.m_under[i];
}
-void Span::operator=(Span const& other)
+Span& Span::operator=(Span const& other)
{
delete [] m_under;
m_size = other.m_size;
@@ -32,6 +32,7 @@ void Span::operator=(Span const& other)
m_fillIndex = other.m_fillIndex;
for (unsigned int i = 0; i < m_fillIndex; i++)
m_under[i] = other.m_under[i];
+ return *this;
}
Span::~Span() { delete [] m_under; }
@@ -50,7 +51,14 @@ void Span::addNumber(int x)
int Span::shortestSpan() const
{
setupSpan();
- return m_under[1] - m_under[0];
+ int shortest = m_under[m_fillIndex - 1] - m_under[0];
+ for (size_t i = 0; i < m_fillIndex - 1; i++)
+ {
+ int span = m_under[i + 1] - m_under[i];
+ if (span < shortest)
+ shortest = span;
+ }
+ return shortest;
}
int Span::longestSpan() const
diff --git a/cpp08/ex01/span.hpp b/cpp08/ex01/span.hpp
index 6b72fb5..4edf90f 100644
--- a/cpp08/ex01/span.hpp
+++ b/cpp08/ex01/span.hpp
@@ -6,7 +6,7 @@
/* By: charles <charles.cabergs@gmail.com> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2020/04/15 06:55:07 by charles #+# #+# */
-/* Updated: 2020/12/15 12:22:31 by cacharle ### ########.fr */
+/* Updated: 2020/12/17 14:07:09 by cacharle ### ########.fr */
/* */
/* ************************************************************************** */
@@ -20,7 +20,7 @@ class Span
public:
Span();
Span(Span const& other);
- void operator=(Span const& other);
+ Span& operator=(Span const& other);
~Span();
Span(unsigned int n);
diff --git a/cpp08/ex02/mutantstack.hpp b/cpp08/ex02/mutantstack.hpp
index 24a01de..4d7176b 100644
--- a/cpp08/ex02/mutantstack.hpp
+++ b/cpp08/ex02/mutantstack.hpp
@@ -6,7 +6,7 @@
/* By: charles <charles.cabergs@gmail.com> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2020/04/15 07:29:42 by charles #+# #+# */
-/* Updated: 2020/12/17 11:26:44 by cacharle ### ########.fr */
+/* Updated: 2020/12/17 14:06:59 by cacharle ### ########.fr */
/* */
/* ************************************************************************** */
@@ -30,7 +30,7 @@ public:
return *this;
}
- ~MutantStack() {}
+ virtual ~MutantStack() {}
class iterator
{