如何从singly-linked list in GLib的开头惯用“弹出”?有几个函数可以粘在一起,但不能成为g_slist_prepend
的预期反转。
答案 0 :(得分:3)
根据您的使用情况,
// pop and discard head
list = g_slist_delete_link(list, list);
或
// pop head but keep it for further use
GSList *head = list;
list = g_slist_remove_link(list, head);
// do stuff with head
g_slist_free1(head);
答案 1 :(得分:2)
您可以使用double-ended queue,其g_queue_push_head
和g_queue_pop_head
。
答案 2 :(得分:0)
list = g_slist_remove(list, list->data);