Added pop functions.
This commit is contained in:
parent
57ff54aac9
commit
02d792ab12
2 changed files with 9 additions and 1 deletions
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue