Prechádzať zdrojové kódy

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.
Sergey Bugaev 4 rokov pred
rodič
commit
d62346c0b1
1 zmenil súbory, kde vykonal 10 pridanie a 0 odobranie
  1. 10 0
      AK/Vector.h

+ 10 - 0
AK/Vector.h

@@ -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)