blob: d24ba29519f9053a5a0c7b85365841d9f4f9ad0d (
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
31
|
/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* ft_vecremove.c :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: charles <charles.cabergs@gmail.com> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2020/04/01 22:45:07 by charles #+# #+# */
/* Updated: 2020/04/01 22:58:21 by charles ### ########.fr */
/* */
/* ************************************************************************** */
#include "libft_vec.h"
/*
** \brief Remove element from vector
** \param vec Vector to remove from
** \param i Index of the element to remove
** \param del Delete function applied to ith element
*/
void ft_vecremove(t_ftvec *vec, size_t i, void (*del)(void *elem))
{
if (vec->size == 0 || i > vec->size - 1)
return ;
if (del != NULL)
del(vec->data[i]);
ft_memmove(vec->data + i, vec->data + i + 1,
(vec->size - i - 1) * sizeof(void*));
vec->size--;
}
|