72 nonvirtual
Array& operator= (
const Array& rhs);
82 nonvirtual T*
data () noexcept;
83 nonvirtual const T*
data () const noexcept;
90 nonvirtual T
GetAt (
size_t i) const;
100 nonvirtual T*
PeekAt (
size_t i);
101 nonvirtual const T*
PeekAt (
size_t i) const;
108 nonvirtual
void SetAt (
size_t i, ArgByValueType<T> item);
115 nonvirtual T& operator[] (
size_t i);
116 nonvirtual T operator[] (
size_t i) const;
123 nonvirtual
size_t size () const;
130 nonvirtual
bool empty () const;
138 nonvirtual
void SetLength (
size_t newLength, ArgByValueType<T> fillValue);
148 nonvirtual
void Insert (
size_t index, ArgByValueType<T> item);
149 template <Memory::ISpanOfT<T> SPAN_T>
150 nonvirtual
void Insert (
size_t at, const SPAN_T& copyFrom);
155#if qCompilerAndStdLib_MemoryInsertAt_Buggy
156 nonvirtual
void Insert_BWA (
size_t index, ArgByValueType<T> item);
169 nonvirtual
void push_back (ArgByValueType<T> item);
177 nonvirtual
void clear ();
184 template <invocable<T> FUNCTION>
217 template <predicate<T> FUNCTION>
219 template <
typename EQUALS_COMPARER = equal_to<T>>
220 nonvirtual
const T*
Find (ArgByValueType<T> item, EQUALS_COMPARER&& equalsComparer = {})
const;
221 template <
typename EQUALS_COMPARER = equal_to<T>>
222 nonvirtual T*
Find (ArgByValueType<T> item, EQUALS_COMPARER&& equalsComparer = {});
229 nonvirtual
size_t capacity ()
const;
239 nonvirtual
void reserve (
size_t slotsAlloced);
250 nonvirtual
void shrink_to_fit ();
261 nonvirtual
void MoveIteratorHereAfterClone (IteratorBase* pi,
const Array* movedFrom)
const;
271 nonvirtual
void Remove (
const ForwardIterator& i);
272 nonvirtual
void Remove (
const BackwardIterator& i);
273 nonvirtual
void Remove (
size_t index)
noexcept;
274 nonvirtual
void Remove (
size_t from,
size_t to)
noexcept;
284 nonvirtual ForwardIterator
erase (
const ForwardIterator& i);
289 nonvirtual
void SetAt (
const ForwardIterator& i, ArgByValueType<T> newValue);
290 nonvirtual
void SetAt (
const BackwardIterator& i, ArgByValueType<T> newValue);
293 nonvirtual
void Invariant () const noexcept;
295#if qStroika_Foundation_Debug_AssertionsChecked
297 nonvirtual
void Invariant_ () const noexcept;
301 template <
typename EQUALS_COMPARER = equal_to<T>>
302 [[deprecated (
"Since Stroika v3.0d18")]]
bool Contains (ArgByValueType<T> item, EQUALS_COMPARER&& equalsComparer)
const
304 return this->
Find (item, equalsComparer) !=
nullptr;
314 [[deprecated (
"Since v3.0d18 - use Insert()")]]
void AddBefore (
const BackwardIterator& i, ArgByValueType<T> item)
318 [[deprecated (
"Since v3.0d18 - use Insert()")]]
void AddAfter (
const ForwardIterator& i, ArgByValueType<T> item)
320 Insert (i.CurrentIndex () + 1, item);
322 [[deprecated (
"Since v3.0d18 - use Insert()")]]
void AddAfter (
const BackwardIterator& i, ArgByValueType<T> newValue)
324 Insert (i.CurrentIndex () + 1, newValue);
330 static constexpr bool kUseMalloc_{is_trivially_copyable_v<T>};
334 size_t fSlotsAllocated_{0};