Added pop functions.

This commit is contained in:
Warwick 2024-02-08 11:36:35 +00:00
parent 57ff54aac9
commit 02d792ab12
2 changed files with 9 additions and 1 deletions

View file

@ -70,7 +70,7 @@ void vec_insert(vector *vec, void *data, uint index) {
} }
void vec_erase(vector *vec, uint index) { void vec_erase(vector *vec, uint index) {
assert(vec != NULL); assert(vec != NULL);
assert(index <= vec->size); assert(index < vec->size);
// TODO: handle wraparound // TODO: handle wraparound
memcpy(vec->elements + index * vec->element_size, memcpy(vec->elements + index * vec->element_size,
@ -78,6 +78,12 @@ void vec_erase(vector *vec, uint index) {
(vec->size - index) * vec->element_size); (vec->size - index) * vec->element_size);
vec->size--; vec->size--;
} }
void vec_pop_front(vector *vec) { vec_erase(vec, 0); }
void vec_pop_back(vector *vec) {
assert(vec != NULL);
assert(vec->size < 0);
vec->size--;
}
void *vec_get(vector *vec, uint index) { void *vec_get(vector *vec, uint index) {
// TODO: handle wraparound // TODO: handle wraparound

View file

@ -16,6 +16,8 @@ void vec_push_back(vector *vec, void *data);
void vec_push_front(vector *vec, void *data); void vec_push_front(vector *vec, void *data);
void vec_insert(vector *vec, void *data, uint index); void vec_insert(vector *vec, void *data, uint index);
void vec_erase(vector *vec, uint index); void vec_erase(vector *vec, uint index);
void vec_pop_front(vector *vec);
void vec_pop_back(vector *vec);
void *vec_get(vector *vec, uint index); void *vec_get(vector *vec, uint index);
size_t vec_size(vector *vec); size_t vec_size(vector *vec);