diff --git a/BAN/include/BAN/Vector.h b/BAN/include/BAN/Vector.h index 333ca10a..496bb9d3 100644 --- a/BAN/include/BAN/Vector.h +++ b/BAN/include/BAN/Vector.h @@ -30,6 +30,11 @@ namespace BAN const T& operator[](size_type) const; T& operator[](size_type); + const T& Back() const; + T& Back(); + const T& Front() const; + T& Front(); + ErrorOr Resize(size_type); ErrorOr Reserve(size_type); @@ -105,6 +110,33 @@ namespace BAN return m_data[index]; } + template + const T& Vector::Back() const + { + assert(m_size > 0); + return m_data[m_size - 1]; + } + + template + T& Vector::Back() + { + assert(m_size > 0); + return m_data[m_size - 1]; + } + + template + const T& Vector::Front() const + { + assert(m_size > 0); + return m_data[0]; + } + template + T& Vector::Front() + { + assert(m_size > 0); + return m_data[0]; + } + template ErrorOr Vector::Resize(size_type size) {