📌ft_lstiter
링크드리스트 전부의 content 변수에 함수 f를 적용시킴
void ft_lstiter(t_list *list, void (*f)(void *));
➕ 매개변수 (Parameters)
list
: 리스트의 포인터 주소f
: 각 리스트에 적용시킬 함수
➕ 반환값 (Return)
void
: 없음
➕ 설명 (Description)
➕ 코드 (Code)
#include "libft.h"
void ft_lstiter(t_list *list, void (*f)(void *))
{
while (list)
{
f(list->content);
list = list->next;
}
}
📌ft_lstmap
새로운 리스트를 만들어 링크드리스트 전부의 content 변수에 함수 f를 적용시킨 것을 저장하고
그 과정에서 만약 생성에 실패하면 del 함수를 사용하여 전체 리스트를 free시킨다
t_list *ft_lstmap(t_list *list, void *(*f)(void *), void (*del)(void *));
➕ 매개변수 (Parameters)
list
: 리스트의 포인터 주소f
: 각 리스트에 적용시킬 함수del
: content 를 삭제하는데 사용되는 함수
➕ 반환값 (Return)
t_list
: 새로운 리스트 (할당 실패시 NULL)
➕ 설명 (Description)
➕ 코드 (Code)
#include "libft.h"
t_list *ft_lstmap(t_list *list, void *(*f)(void *), void (*del)(void *))
{
t_list *result;
t_list *temp;
result = NULL;
while (list)
{
temp = ft_lstnew((*f)(list->content));
if (!temp)
{
ft_lstclear(&result, del);
return (NULL);
}
ft_lstadd_back(&result, temp);
temp = temp->next;
list = list->next;
}
return (result);
}
반응형
'➰ 코딩 부트캠프 > 42 seoul' 카테고리의 다른 글
42서울 본과정 후기 - 2020.12.22 (0) | 2021.01.17 |
---|---|
42서울 본과정 후기 - 2020.12.21 (0) | 2021.01.17 |
[0 Circle] Libft - ft_lstdelone, ft_strclear (0) | 2021.01.04 |
[0 Circle] Libft - ft_lstsize, ft_lstadd_back (0) | 2021.01.04 |
[0 Circle] Libft - ft_lstnew, ft_lstadd_front (0) | 2021.01.04 |