aboutsummaryrefslogtreecommitdiff
path: root/collections/vector/vector.h
blob: 2b1e8e95b6a7877c4f3ac09c36ff8b2807927122 (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
27
28
29
30
#ifndef VECTOR_H
#define VECTOR_H

typedef struct vector vec;

/*constructors*/
vec* vec_new();
vec* vec_with_capacity(int);

/*management*/
int vec_size(vec*);
int vec_capacity(vec*);
vec* vec_cp(vec*);
void vec_print(vec*, char* (void*));

/*data*/
void vec_push(vec*, void*);
void* vec_pop(vec*);
void* vec_back(vec*);

void vec_set(vec*, int, void*);
void* vec_index(vec*, int);

void vec_swap(vec*, int, int);


/*memory*/
void vec_clear(vec*);
void vec_free(vec*);
#endif