diff options
| author | Martial Simon <msimon_fr@hotmail.com> | 2025-09-15 01:08:27 +0200 |
|---|---|---|
| committer | Martial Simon <msimon_fr@hotmail.com> | 2025-09-15 01:08:27 +0200 |
| commit | c9b6b9a5ca082fe7c1b6f58d7713f785a9eb6a5c (patch) | |
| tree | 3e4f42f93c7ae89a364e4d51fff6e5cec4e55fa9 /rushs/tinyprintf/vector/vector.h | |
add: graphs et rushs
Diffstat (limited to 'rushs/tinyprintf/vector/vector.h')
| -rw-r--r-- | rushs/tinyprintf/vector/vector.h | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/rushs/tinyprintf/vector/vector.h b/rushs/tinyprintf/vector/vector.h new file mode 100644 index 0000000..5afada7 --- /dev/null +++ b/rushs/tinyprintf/vector/vector.h @@ -0,0 +1,64 @@ +#ifndef VECTOR_H +#define VECTOR_H + +#include <stddef.h> + +struct vector +{ + // The number of elements in the vector + size_t size; + // The maximum number of elements in the vector + size_t capacity; + // The elements themselves + int *data; +}; + +/* +** Initialize the vector with `n` capacity. +** Returns `NULL` if an error occured. +*/ +struct vector *vector_init(size_t n); + +/* +** Release the memory used by the vector. +** Does nothing if `v` is `NULL`. +*/ +void vector_destroy(struct vector *v); + +/* +** Resize the vector to `n` capacity. +** Returns `NULL` if an error occured. +*/ +struct vector *vector_resize(struct vector *v, size_t n); + +/* +** Append an element to the end of the vector. Expand the vector if needed. +** Returns `NULL` if an error occured. +*/ +struct vector *vector_append(struct vector *v, int elt); + +/* +** Display the vector contents on `stdout`. +** Displays `\n` if `v` is `NULL`. +*/ +void vector_print(const struct vector *v); + +/* +** Remove all the elements of the vector, and resize it to `n` capacity. +** Returns `NULL` if an error occured. +*/ +struct vector *vector_reset(struct vector *v, size_t n); + +/* +** Insert `n` at the index `i`. Expand the vector if needed. +** Returns `NULL` if an error occured. +*/ +struct vector *vector_insert(struct vector *v, size_t i, int elt); + +/* +** Remove the element at the index `i`. +** Returns `NULL` if an error occured. +*/ +struct vector *vector_remove(struct vector *v, size_t i); + +#endif /* !VECTOR_H */ |
