diff options
| author | Charles <sircharlesaze@gmail.com> | 2020-07-15 18:31:24 +0200 |
|---|---|---|
| committer | Charles <sircharlesaze@gmail.com> | 2020-07-15 18:31:24 +0200 |
| commit | 0fc1e473e3bae0e1df32228ff72b9ab654fd2ac3 (patch) | |
| tree | 4ea56bd34dad69606c2baf4d8d57257cd8d6bd3a /src/vec/ft_vecswallow.c | |
| parent | 13cf7ba8ba259c4c68c32021d4b96f7bf8de0687 (diff) | |
| download | libft-0fc1e473e3bae0e1df32228ff72b9ab654fd2ac3.tar.gz libft-0fc1e473e3bae0e1df32228ff72b9ab654fd2ac3.tar.bz2 libft-0fc1e473e3bae0e1df32228ff72b9ab654fd2ac3.zip | |
Added ft_vecreserve, ft_vecswallow
Diffstat (limited to 'src/vec/ft_vecswallow.c')
| -rw-r--r-- | src/vec/ft_vecswallow.c | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/src/vec/ft_vecswallow.c b/src/vec/ft_vecswallow.c new file mode 100644 index 0000000..614022d --- /dev/null +++ b/src/vec/ft_vecswallow.c @@ -0,0 +1,35 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_vecswallow.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: charles <charles.cabergs@gmail.com> +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2020/07/15 17:17:00 by charles #+# #+# */ +/* Updated: 2020/07/15 18:30:37 by charles ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft_vec.h" + +/* +** \brief Insert all element of a vector in an other vector +** and free the swallowed vector +** \param vec Vector where the element will be inserted +** \param index Index of the insertion +** \param swallowed Vector to swallow +** \return Destination vector or NULL on error +*/ + +t_ftvec *ft_vecswallow_at(t_ftvec *vec, size_t index, t_ftvec *swallowed) +{ + size_t i; + + if (ft_vecreserve(vec, vec->size + swallowed->size) == NULL) + return (NULL); + i = -1; + while (++i < swallowed->size) + ft_vecinsert(vec, index, swallowed->data[i]); + ft_vecdestroy(swallowed, NULL); + return (vec); +} |
