CVector 4.3.0
A C++ style vector library in strict ANSI C (C89)
Loading...
Searching...
No Matches
cvector_i.h
Go to the documentation of this file.
1#ifndef CVECTORI_H
2#define CVECTORI_H
3
4#ifndef CVEC_SIZE_T
5#include <stdlib.h>
6#define CVEC_SIZE_T size_t
7#endif
8
9#ifndef CVEC_SZ
10#define CVEC_SZ
12#endif
13
14#ifdef __cplusplus
15extern "C" {
16#endif
17
19typedef struct cvector_i
20{
21 int* a;
24} cvector_i;
25
27
28int cvec_i(cvector_i* vec, cvec_sz size, cvec_sz capacity);
29int cvec_init_i(cvector_i* vec, int* vals, cvec_sz num);
30
31cvector_i* cvec_i_heap(cvec_sz size, cvec_sz capacity);
32cvector_i* cvec_init_i_heap(int* vals, cvec_sz num);
33int cvec_copyc_i(void* dest, void* src);
34int cvec_copy_i(cvector_i* dest, cvector_i* src);
35
36int cvec_push_i(cvector_i* vec, int a);
37int cvec_pop_i(cvector_i* vec);
38
39int cvec_extend_i(cvector_i* vec, cvec_sz num);
40int cvec_insert_i(cvector_i* vec, cvec_sz i, int a);
41int cvec_insert_array_i(cvector_i* vec, cvec_sz i, int* a, cvec_sz num);
42int cvec_replace_i(cvector_i* vec, cvec_sz i, int a);
43void cvec_erase_i(cvector_i* vec, cvec_sz start, cvec_sz end);
44int cvec_reserve_i(cvector_i* vec, cvec_sz size);
45#define cvec_shrink_to_fit_i(vec) cvec_set_cap_i((vec), (vec)->size)
46int cvec_set_cap_i(cvector_i* vec, cvec_sz size);
47void cvec_set_val_sz_i(cvector_i* vec, int val);
48void cvec_set_val_cap_i(cvector_i* vec, int val);
49
50int* cvec_back_i(cvector_i* vec);
51
52void cvec_clear_i(cvector_i* vec);
53void cvec_free_i_heap(void* vec);
54void cvec_free_i(void* vec);
55
56#ifdef __cplusplus
57}
58#endif
59
60#endif
CVEC_SIZE_T cvec_sz
Definition cvector.h:88
int cvec_insert_i(cvector_i *vec, cvec_sz i, int a)
Insert a at index i (0 based).
Definition cvector_i.c:225
void cvec_free_i_heap(void *vec)
Frees everything so don't use vec after calling this.
Definition cvector_i.c:349
void cvec_free_i(void *vec)
Frees the internal array and zeros out the members to maintain a consistent state.
Definition cvector_i.c:359
int cvec_pop_i(cvector_i *vec)
Remove and return the last element (size decreased 1).
Definition cvector_i.c:190
int cvec_copyc_i(void *dest, void *src)
Makes dest a copy of src.
Definition cvector_i.c:131
int cvec_replace_i(cvector_i *vec, cvec_sz i, int a)
Replace value at index i with a, return original value.
Definition cvector_i.c:272
int cvec_insert_array_i(cvector_i *vec, cvec_sz i, int *a, cvec_sz num)
Insert the first num elements of array a at index i.
Definition cvector_i.c:251
cvec_sz CVEC_I_START_SZ
Definition cvector_i.c:30
int cvec_copy_i(cvector_i *dest, cvector_i *src)
Makes dest a copy of src.
Definition cvector_i.c:152
int cvec_set_cap_i(cvector_i *vec, cvec_sz size)
Set capacity to size.
Definition cvector_i.c:310
cvector_i * cvec_init_i_heap(int *vals, cvec_sz num)
Create (on the heap) and initialize cvector_i with num elements of vals.
Definition cvector_i.c:63
int cvec_reserve_i(cvector_i *vec, cvec_sz size)
Make sure capacity is at least size(parameter not member).
Definition cvector_i.c:292
cvector_i * cvec_i_heap(cvec_sz size, cvec_sz capacity)
Creates a new cvector_i on the heap.
Definition cvector_i.c:40
int cvec_push_i(cvector_i *vec, int a)
Append a to end of vector (size increased 1).
Definition cvector_i.c:171
void cvec_erase_i(cvector_i *vec, cvec_sz start, cvec_sz end)
Erases elements from start to end inclusive.
Definition cvector_i.c:284
int cvec_init_i(cvector_i *vec, int *vals, cvec_sz num)
Same as cvec_init_i_heap() except the vector passed in was declared on the stack so it isn't allocate...
Definition cvector_i.c:106
int cvec_i(cvector_i *vec, cvec_sz size, cvec_sz capacity)
Same as cvec_i_heap() except the vector passed in was declared on the stack so it isn't allocated in ...
Definition cvector_i.c:89
CVEC_SIZE_T cvec_sz
Definition cvector_i.h:11
void cvec_clear_i(cvector_i *vec)
Sets size to 0 (does not clear contents).
Definition cvector_i.c:345
int cvec_extend_i(cvector_i *vec, cvec_sz num)
Increase the size of the array num items.
Definition cvector_i.c:203
void cvec_set_val_cap_i(cvector_i *vec, int val)
Fills entire allocated array (capacity) with val.
Definition cvector_i.c:336
#define CVEC_SIZE_T
Definition cvector_i.h:6
void cvec_set_val_sz_i(cvector_i *vec, int val)
Set all size elements to val.
Definition cvector_i.c:327
int * cvec_back_i(cvector_i *vec)
Return pointer to last element.
Definition cvector_i.c:196
Data structure for int vector.
Definition cvector.h:101
cvec_sz size
Current size (amount you use when manipulating array directly).
Definition cvector.h:103
int * a
Array.
Definition cvector.h:102
cvec_sz capacity
Allocated size of array; always >= size.
Definition cvector.h:104