Files
42-Alcu/inc/vector.h
T
2026-03-29 18:16:19 +02:00

50 lines
2.0 KiB
C

/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* vector.h :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: lud-adam <lud-adam@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2026/03/29 14:24:01 by lud-adam #+# #+# */
/* Updated: 2026/03/29 14:40:21 by lud-adam ### ########.fr */
/* */
/* ************************************************************************** */
#ifndef VECTOR_H
#define VECTOR_H
#include <stdbool.h>
#define VECTOR_INIT_CAPACITY 6
#define UNDEFINE -1
#define SUCCESS 0
typedef struct s_vector_list {
void **items;
int capacity;
int total;
} t_vector_list;
typedef struct s_vector t_vector;
struct s_vector {
t_vector_list vector_list; /**< List to store vector elements */
int (*pfVectorTotal)(
t_vector *); /**< Retrieves the total number of elements in the vector */
int (*pfVectorResize)(t_vector *,
int); /**< Resizes the vector to a new capacity */
int (*pfVectorAdd)(t_vector *, void *); /**< Adds an element to the vector */
int (*pfVectorSet)(
t_vector *, int,
void *); /**< Sets an element at a specific index in the vector */
void *(*pfVectorGet)(t_vector *,
int); /**< Retrieves an element from the vector */
int (*pfVectorDelete)(t_vector *,
int); /**< Deletes an element from the vector */
int (*pfVectorFree)(
t_vector *); /**< Frees the memory allocated for the vector */
};
bool vector_init(t_vector *v);
#endif