73 nonvirtual
Array& operator= (
const Array& rhs);
83 nonvirtual T*
data () noexcept;
84 nonvirtual const T*
data () const noexcept;
91 nonvirtual T
GetAt (
size_t i) const;
101 nonvirtual T*
PeekAt (
size_t i);
102 nonvirtual const T*
PeekAt (
size_t i) const;
109 nonvirtual
void SetAt (
size_t i, ArgByValueType<T> item);
116 nonvirtual T& operator[] (
size_t i);
117 nonvirtual T operator[] (
size_t i) const;
124 nonvirtual
size_t size () const;
131 nonvirtual
bool empty () const;
139 nonvirtual
void SetLength (
size_t newLength, ArgByValueType<T> fillValue);
149 nonvirtual
void Insert (
size_t index, ArgByValueType<T> item);
150 template <Memory::ISpanOfT<T> SPAN_T>
151 nonvirtual
void Insert (
size_t at, const SPAN_T& copyFrom);
156#if qCompilerAndStdLib_MemoryInsertAt_Buggy
157 nonvirtual
void Insert_BWA (
size_t index, ArgByValueType<T> item);
170 nonvirtual
void push_back (ArgByValueType<T> item);
178 nonvirtual
void clear ();
199 template <invocable<T> FUNCTION>
200 nonvirtual
void Apply (FUNCTION&& doToElement)
const;
201 template <invocable<T> FUNCTION>
234 template <predicate<T> FUNCTION>
236 template <
typename EQUALS_COMPARER = equal_to<T>>
237 nonvirtual
const T*
Find (ArgByValueType<T> item, EQUALS_COMPARER&& equalsComparer = {})
const;
238 template <
typename EQUALS_COMPARER = equal_to<T>>
239 nonvirtual T*
Find (ArgByValueType<T> item, EQUALS_COMPARER&& equalsComparer = {});
246 nonvirtual
size_t capacity ()
const;
256 nonvirtual
void reserve (
size_t slotsAlloced);
267 nonvirtual
void shrink_to_fit ();
278 nonvirtual
void MoveIteratorHereAfterClone (IteratorBase* pi,
const Array* movedFrom)
const;
288 nonvirtual
void Remove (
const ForwardIterator& i);
289 nonvirtual
void Remove (
const BackwardIterator& i);
290 nonvirtual
void Remove (
size_t index)
noexcept;
291 nonvirtual
void Remove (
size_t from,
size_t to)
noexcept;
301 nonvirtual ForwardIterator
erase (
const ForwardIterator& i);
306 nonvirtual
void SetAt (
const ForwardIterator& i, ArgByValueType<T> newValue);
307 nonvirtual
void SetAt (
const BackwardIterator& i, ArgByValueType<T> newValue);
310 nonvirtual
void Invariant () const noexcept;
312#if qStroika_Foundation_Debug_AssertionsChecked
314 nonvirtual
void Invariant_ () const noexcept;
318 template <
typename EQUALS_COMPARER = equal_to<T>>
319 [[deprecated (
"Since Stroika v3.0d18")]]
bool Contains (ArgByValueType<T> item, EQUALS_COMPARER&& equalsComparer)
const
321 return this->
Find (item, equalsComparer) !=
nullptr;
331 [[deprecated (
"Since v3.0d18 - use Insert()")]]
void AddBefore (
const BackwardIterator& i, ArgByValueType<T> item)
335 [[deprecated (
"Since v3.0d18 - use Insert()")]]
void AddAfter (
const ForwardIterator& i, ArgByValueType<T> item)
337 Insert (i.CurrentIndex () + 1, item);
339 [[deprecated (
"Since v3.0d18 - use Insert()")]]
void AddAfter (
const BackwardIterator& i, ArgByValueType<T> newValue)
341 Insert (i.CurrentIndex () + 1, newValue);
347 static constexpr bool kUseMalloc_{is_trivially_copyable_v<T>};
351 size_t fSlotsAllocated_{0};
439 using difference_type =
typename inherited::difference_type;
459 explicit operator
bool () const;
462 nonvirtual
bool AtStart () const noexcept;
465 nonvirtual
bool AtEnd () const noexcept;
498 nonvirtual const T& operator[] (difference_type i) const;
502 nonvirtual strong_ordering operator<=> (const
ForwardIterator& rhs) const;
504 DISABLE_COMPILER_GCC_WARNING_START ("GCC diagnostic ignored \"-Wnon-template-friend\"");
516 DISABLE_COMPILER_GCC_WARNING_END ("GCC diagnostic ignored \"-Wnon-template-friend\"");
539 return OPERATOR_MINUS_BWA_ (lhs, rhs);