aboutsummaryrefslogtreecommitdiff
path: root/src/vector.h
blob: b32919238f155160735ad2868fe0e249c7fd0596 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#ifndef VECTOR_H
#define VECTOR_H

#include <stddef.h>

#define INITAL_CAPACITY 10
#define GROWTH_FACTOR 2

typedef struct Vector Vector;
struct Vector {
    void **data;
    size_t size;
    size_t capacity;
};

Vector *vector_new(void);
void vector_delete(Vector *v);
void vector_push(Vector *v, void *element);
void *vector_pop(Vector *v);
void *vector_get(Vector *v, size_t index);
void vector_set(Vector *v, size_t index, void *element);
size_t vector_size(Vector *v);
int vector_is_empty(Vector *v);
void vector_clear(Vector *v);

#endif // !VECTOR_H