mirror of
https://github.com/SerenityOS/serenity
synced 2024-10-15 04:13:11 +00:00
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:
parent
97b3035c14
commit
d62346c0b1
10
AK/Vector.h
10
AK/Vector.h
|
@ -447,6 +447,16 @@ public:
|
||||||
m_size += other_size;
|
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)
|
void append(const T* values, size_t count)
|
||||||
{
|
{
|
||||||
if (!count)
|
if (!count)
|
||||||
|
|
Loading…
Reference in a new issue