4#include "TransceiverConfig.h"
14using Vector = ::std::vector<T>;
58 other._data =
nullptr;
80 _capacity =
other._capacity;
81 other._data =
nullptr;
93 if (_size >= _capacity)
reserve(_capacity ? _capacity * 2 : 4);
94 _data[_size++] =
value;
108 const T*
data()
const {
return _data; }
116 size_t size()
const {
return _size; }
118 bool empty()
const {
return _size == 0; }
123 T&
back() {
return _data[_size - 1]; }
125 const T&
back()
const {
return _data[_size - 1]; }
130 if (
idx >= _size)
return end();
131 for (
size_t i =
idx;
i + 1 < _size; ++
i) _data[
i] = _data[
i + 1];
141 if (
idx >= _size)
return end();
152 for (
size_t i = _size;
i <
n; ++
i) _data[
i] =
T();
158 if (
cap <= _capacity)
return;
Small, header-only vector replacement for non-STL environments.
iterator begin()
Iterator to first element.
iterator end()
Iterator to one past last element.
size_t capacity() const
Current allocated capacity.
const_iterator end() const
Const iterator to one past last element.
void resize(size_t n)
Resize vector to n elements.
Vector(size_t n)
Construct vector with n default-initialized elements.
void clear()
Remove all elements.
iterator erase(iterator first, iterator last)
Erase range [first, last), return iterator to next element.
T & operator[](size_t idx)
Access element by index.
const_iterator begin() const
Const iterator to first element.
Vector & operator=(Vector &&other) noexcept
Move assignment.
Vector(Vector &&other) noexcept
Move constructor.
Vector(const Vector &other)
Copy constructor.
void push_back(const T &value)
Add element to end of vector.
void reserve(size_t cap)
Reserve space for at least cap elements.
T * data()
Pointer to underlying data.
Vector()
Default constructor: creates empty vector.
bool empty() const
True if vector is empty.
const T * data() const
Const pointer to underlying data.
~Vector()
Destructor: frees memory.
iterator erase(iterator pos)
Erase single element at iterator pos, return iterator to next element.
T & back()
Access last element.
const T & operator[](size_t idx) const
Access element by index (const)
Vector & operator=(const Vector &other)
Copy assignment.
const T & back() const
Access last element (const)
size_t size() const
Number of elements in vector.