From 652c9dfc4960e70e00f939e280c452a44b0fdf63 Mon Sep 17 00:00:00 2001 From: Daniel Agar Date: Sat, 19 Jan 2019 13:30:53 -0500 Subject: [PATCH] containers/Array.hpp cleanup and remove data initialization --- src/include/containers/Array.hpp | 100 ++++++++----------------------- 1 file changed, 25 insertions(+), 75 deletions(-) diff --git a/src/include/containers/Array.hpp b/src/include/containers/Array.hpp index fe30bde5db..2911f605f8 100644 --- a/src/include/containers/Array.hpp +++ b/src/include/containers/Array.hpp @@ -38,18 +38,13 @@ namespace px4 { -template +template class Array { - typedef TYPE &reference; - typedef const TYPE &const_reference; - typedef TYPE *iterator; - typedef const TYPE *const_iterator; public: - Array() = default; - bool push_back(const TYPE &x) + bool push_back(const T &x) { if (_size == N) { _overflow = true; @@ -73,84 +68,39 @@ public: } } - reference operator[](size_t n) - { - return _items[n]; - } - - const_reference operator[](size_t n) const - { - return _items[n]; - } - - reference at(size_t n) - { - return _items[n]; - } - - const_reference at(size_t n) const - { - return _items[n]; - } - - size_t size() const - { - return _size; - } - - size_t max_size() const - { - return N; - } - - size_t capacity() const - { - return N; - } - - bool empty() const - { - return _size == 0; - } - - bool is_overflowed() - { - return _overflow; - } - - iterator begin() - { - return &_items[0]; - } - - iterator end() - { - return &_items[_size]; - } - - const_iterator begin() const - { - return &_items[0]; - } - - const_iterator end() const - { - return &_items[_size]; - } - - void erase(iterator item) + void erase(T *item) { if (item - _items < static_cast(_size)) { --_size; - for (iterator it = item; it != &_items[_size]; ++it) { + for (T *it = item; it != &_items[_size]; ++it) { *it = *(it + 1); } } } + T &operator[](size_t n) { return _items[n]; } + const T &operator[](size_t n) const { return _items[n]; } + + T &at(size_t n) { return _items[n]; } + const T &at(size_t n) const { return _items[n]; } + + size_t size() const { return _size; } + size_t max_size() const { return N; } + size_t capacity() const { return N; } + + bool empty() const { return _size == 0; } + + bool is_overflowed() { return _overflow; } + + T *begin() { return &_items[0]; } + T *end() { return &_items[_size]; } + + const T *begin() const { return &_items[0]; } + const T *end() const { return &_items[_size]; } + private: - TYPE _items[N] {}; + T _items[N]; size_t _size{0}; bool _overflow{false}; };