aboutsummaryrefslogtreecommitdiff
path: root/src/vec.h
diff options
context:
space:
mode:
authorMistivia <i@mistivia.com>2025-06-20 23:00:17 +0800
committerMistivia <i@mistivia.com>2025-06-20 23:00:17 +0800
commit16c7734be15f6f09fa732297a1fecc1076fa9df7 (patch)
tree9df55f16aa1c3d9e72416a2fcd892ab84f603e6c /src/vec.h
parent8db6e93d49aed1e4dac3e5090babb29ddcf0beac (diff)
add vector method
Diffstat (limited to 'src/vec.h')
-rw-r--r--src/vec.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/vec.h b/src/vec.h
index faa314a..7ce52ea 100644
--- a/src/vec.h
+++ b/src/vec.h
@@ -18,9 +18,11 @@
void T##Vector_push_back(T##Vector *self, T elem); \
void T##Vector_insert_before(T##Vector *self, int n, T elem); \
void T##Vector_pop(T##Vector *self); \
+ bool T##Vector_empty(T##Vector *self); \
void T##Vector_remove(T##Vector *self, size_t n); \
size_t T##Vector_len(T##Vector *self); \
T* T##Vector_begin(T##Vector *self); \
+ T* T##Vector_last(T##Vector *self); \
T* T##Vector_end(T##Vector *self); \
T* T##Vector_ref(T##Vector *self, size_t n); \
void T##Vector_swap(T##Vector *self, int i, int j); \
@@ -69,7 +71,9 @@
self->size -= 1; \
} \
T* T##Vector_begin(T##Vector *self) { return self->buffer; } \
+ bool T##Vector_empty(T##Vector *self) { return self->size == 0; } \
T* T##Vector_end(T##Vector *self) { return self->buffer + self->size; } \
+ T* T##Vector_last(T##Vector *self) { return self->buffer + self->size - 1; } \
T* T##Vector_ref(T##Vector *self, size_t n) { return self->buffer + n; } \
void T##Vector_swap(T##Vector *self, int i, int j) { \
T buf; \