18template<
typename T,
size_t N>
22 char mRaw[N *
sizeof(T)];
39 static_assert(M <= N,
"Too many elements for FixedVector");
56 const T* out =
nullptr;
63 constexpr size_t size()
const {
85 void assign(
const T* values,
size_t count) {
87 for (
size_t i = 0; i < count; ++i) {
145 template<
typename Predicate>
186 bool has(
const T& value)
const {
238 for (
size_t i = 0; i <
size; ++i) {
247 if (
this != &other) {
261 if (new_capacity < n) {
265 for (
size_t i = 0; i <
mSize; ++i) {
286 for (
size_t i = 0; i < n && i <
mSize; ++i) {
295 for (
size_t i = 0; i < n; ++i) {
353 return reverse_iterator(
end());
357 return reverse_iterator(
begin());
396 template<
typename Predicate>
406 bool has(
const T& value)
const {
417 while (
pos !=
end() - 1) {
434 T* temp =
mArray.release();
435 size_t temp_size =
mSize;
437 T* temp2 = other.
mArray.release();
442 other.
mSize = temp_size;
461 auto last =
end() - 1;
462 for (
size_t curr_idx = last -
begin(); curr_idx > target_idx; --curr_idx) {
463 auto first =
begin() + curr_idx - 1;
464 auto second =
begin() + curr_idx;
470 void assign(
const T* values,
size_t count) {
471 assign(values, values + count);
494 for (
size_t i = 0; i <
size(); ++i) {
503 return !(*
this == other);
508template <
typename T,
typename LessThan>
527 if (needs_adjustment) {
575 while (first != last) {
576 iterator mid = first + (last - first) / 2;
578 if (
mLess(*mid, value)) {
608 bool has(
const T& value)
const {
const PairKV * const_iterator
constexpr size_t size() const
iterator find_if(Predicate pred)
void assign(const_iterator begin, const_iterator end)
T & operator[](size_t index)
const_iterator find(const T &value) const
bool has(const T &value) const
iterator erase(const T &value)
const_iterator data() const
constexpr bool empty() const
const T & operator[](size_t index) const
const_iterator end() const
const_iterator begin() const
FixedVector(const T(&values)[M])
void push_back(const T &value)
FixedVector(const T(&values)[N])
iterator erase(iterator pos)
constexpr size_t capacity() const
bool insert(iterator pos, const T &value)
iterator find(const T &value)
void assign(const T *values, size_t count)
bool operator==(const HeapVector< T > &other) const
const_iterator end() const
const_iterator find(const T &value) const
const_iterator begin() const
void resize(size_t n, const T &value)
void assign(const T *values, size_t count)
bool insert(iterator pos, const T &value)
HeapVector(size_t size=0, const T &value=T())
T & operator[](size_t index)
void push_back(const T &value)
HeapVector & operator=(const HeapVector< T > &other)
bool erase(iterator pos, T *out_value=nullptr)
const T & operator[](size_t index) const
iterator find_if(Predicate pred)
void ensure_size(size_t n)
void swap(iterator a, iterator b)
bool operator!=(const HeapVector< T > &other) const
const DrawItem * const_iterator
iterator find(const T &value)
void swap(HeapVector< T > &other)
void erase(const T &value)
reverse_iterator rbegin()
fl::scoped_array< DrawItem > mArray
bool has(const T &value) const
HeapVector(const HeapVector< T > &other)
void assign(const_iterator begin, const_iterator end)
SortedHeapVector(LessThan less=LessThan())
iterator lower_bound(const T &value)
HeapVector< Pair > mArray
bool erase(const T &value)
bool has(const T &value) const
void swap(SortedHeapVector &other)
const_iterator end() const
void setMaxSize(size_t n)
HeapVector< Pair >::const_iterator const_iterator
const_iterator begin() const
T & operator[](size_t index)
bool insert(const T &value, InsertResult *result=nullptr)
const_iterator lower_bound(const T &value) const
HeapVector< Pair >::iterator iterator
const T & operator[](size_t index) const
const_iterator find(const T &value) const
iterator find(const T &value)
Implements the FastLED namespace macros.
Implements a simple red square effect for 2D LED grids.
static FASTLED_NAMESPACE_BEGIN uint8_t const p[]
reverse_iterator(iterator i)
bool operator!=(const reverse_iterator &other) const
reverse_iterator & operator++()