AK: Add Vector::prepend() overload for multiple items

Much like with Vector::append(), you may want to append multiple items in one
go. It's actually more important to do this for prepending, because you don't
want to copy the rest of items further each time.
This commit is contained in:
Sergey Bugaev 2020-11-21 21:45:36 +03:00 committed by Andreas Kling
parent 97b3035c14
commit d62346c0b1

View file

@ -447,6 +447,16 @@ public:
m_size += other_size;
}
void prepend(const T* values, size_t count)
{
if (!count)
return;
grow_capacity(size() + count);
TypedTransfer<T>::move(slot(count), slot(0), m_size);
TypedTransfer<T>::copy(slot(0), values, count);
m_size += count;
}
void append(const T* values, size_t count)
{
if (!count)