mirror of
https://github.com/PX4/PX4-Autopilot.git
synced 2026-05-27 10:17:45 +08:00
containers/Array.hpp cleanup and remove data initialization
This commit is contained in:
committed by
Lorenz Meier
parent
7008558fac
commit
652c9dfc49
@@ -38,18 +38,13 @@
|
|||||||
namespace px4
|
namespace px4
|
||||||
{
|
{
|
||||||
|
|
||||||
template <typename TYPE, size_t N>
|
template <class T, size_t N>
|
||||||
class Array
|
class Array
|
||||||
{
|
{
|
||||||
typedef TYPE &reference;
|
|
||||||
typedef const TYPE &const_reference;
|
|
||||||
typedef TYPE *iterator;
|
|
||||||
typedef const TYPE *const_iterator;
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
Array() = default;
|
|
||||||
|
|
||||||
bool push_back(const TYPE &x)
|
bool push_back(const T &x)
|
||||||
{
|
{
|
||||||
if (_size == N) {
|
if (_size == N) {
|
||||||
_overflow = true;
|
_overflow = true;
|
||||||
@@ -73,84 +68,39 @@ public:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
reference operator[](size_t n)
|
void erase(T *item)
|
||||||
{
|
|
||||||
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)
|
|
||||||
{
|
{
|
||||||
if (item - _items < static_cast<int>(_size)) {
|
if (item - _items < static_cast<int>(_size)) {
|
||||||
--_size;
|
--_size;
|
||||||
|
|
||||||
for (iterator it = item; it != &_items[_size]; ++it) {
|
for (T *it = item; it != &_items[_size]; ++it) {
|
||||||
*it = *(it + 1);
|
*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:
|
private:
|
||||||
TYPE _items[N] {};
|
T _items[N];
|
||||||
size_t _size{0};
|
size_t _size{0};
|
||||||
bool _overflow{false};
|
bool _overflow{false};
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user