1#ifndef __LIBK__VECTOR_HPP_
2#define __LIBK__VECTOR_HPP_
30 other.data_ =
nullptr;
44 other.data_ =
nullptr;
146 T* new_data =
static_cast<T*
>(
kalloc(new_cap *
sizeof(T)));
T & front()
Elemen pertama.
void push_back(T &&val)
Tambah elemen ke akhir (move).
T & operator[](size_t index)
Akses elemen by index (tanpa bounds check).
void clear()
Reset ukuran ke 0 tanpa membebaskan memori.
void destroy()
Bebaskan memori — menggantikan macro vector_destroy().
Vector(Vector &&other) noexcept
Move constructor.
const T & operator[](size_t index) const
Akses elemen by index — const overload.
T * data()
Pointer raw ke data internal.
T & back()
Elemen terakhir.
size_t capacity() const
Kapasitas buffer saat ini.
void push_back(const T &val)
Tambah elemen ke akhir (copy).
T * pop_back()
Hapus elemen terakhir dan kembalikan nilainya.
size_t size() const
Jumlah elemen aktif.
Vector(const Vector &)=delete
void reserve(size_t new_cap)
Pastikan kapasitas minimal new_cap elemen.
Vector & operator=(const Vector &)=delete
void expand_capacity()
Dobel kapasitas — menggantikan macro vector_expand_capacity().
Vector & operator=(Vector &&other) noexcept
Move assignment.
bool empty() const
True jika tidak ada elemen.
const T * data() const
Pointer raw ke data internal — const.
void kfree(void *ptr, size_t size)
void * kalloc(size_t size)
void memcopy(void *dest, void *src, size_t size)
#define VECTOR_MINIMUM_ITEM