Provided by: libsoldout-dev_1.4-2_amd64
NAME
soldout_array, arr_adjust, arr_free, arr_grow, arr_init, arr_insert, arr_item, arr_newitem, arr_remove, arr_sorted_find, arr_sorted_find_i, parr_adjust, parr_free, parr_grow, parr_init, parr_insert, parr_pop, parr_push, parr_remove, parr_sorted_find, parr_sorted_find_i, parr_top — array handling functions for soldout
SYNOPSIS
#include <array.h> int (*array_cmp_fn)(void *key, void *array_entry); int arr_adjust(struct array *arr); void arr_free(struct array *arr); int arr_grow(struct array *arr, int need); void arr_init(struct array *arr, size_t unit); int arr_insert(struct array *arr, int nb, int n); void * arr_item(struct array *arr, int no); int arr_newitem(struct array *arr); void arr_remove(struct array *arr, int idx); void * arr_sorted_find(struct array *arr, void *key, array_cmp_fn cmp); int arr_sorted_find_i(struct array *arr, void *key, array_cmp_fn cmp); int parr_adjust(struct parray *arr); void parr_free(struct parray *arr); int parr_grow(struct parray *arr, int need); void parr_init(struct parray *arr); int parr_insert(struct parray *parr, int nb, int n); void * parr_pop(struct parray *arr); int parr_push(struct parray *arr, void *i); void * parr_remove(struct parray *arr, int idx); void * parr_sorted_find(struct parray *arr, void *key, array_cmp_fn cmp); int parr_sorted_find_i(struct parray *arr, void *key, array_cmp_fn cmp); void * parr_top(struct parray *arr);
DESCRIPTION
Types struct array generic linear array. Consists of the following fields: void * base actual array data. int size size of the array. int asize allocated size. size_t unit reallocation unit size. struct parray array of pointers. Consists of the following fields: void ** item actual parray data. int size size of the parray. int asize allocated size. array_cmp_fn comparison function for sorted arrays. Functions arr_adjust() shrink the allocated memory to fit exactly the needs. arr_free() free the structure contents (but NOT the struct itself). arr_grow() increase the array size to fit the given number of elements. arr_init() initialize the contents of the struct. arr_insert() insert nb elements before the n one. arr_item() return a pointer to the n element. arr_newitem() return the index of a new element appended to the array arr. arr_remove() remove the n-th elements of the array. arr_sorted_find() O(log n) search in a sorted array, returning entry. arr_sorted_find_i() O(log n) search in a sorted array, returning index of the smallest element larger than the key. parr_adjust() shrink the allocated memory to fit exactly the needs. parr_free() free the structure contents (but NOT the struct itself). parr_grow() increase the array size to fit the given number of elements. parr_init() initialize the contents of the struct. parr_insert() insert nb elements before the n one. parr_pop() pop the last item of the array and return it. parr_push() push a pointer at the end of the array (= append). parr_remove() remove the idx element of the array and return it. parr_sorted_find() O(log n) search in a sorted array, returning entry. parr_sorted_find_i() O(log n) search in a sorted array, returning index of the smallest element larger than the key. parr_top() return the top the stack (i.e. the last element of the array).
RETURN VALUES
The arr_adjust(), arr_grow(), arr_insert(), parr_adjust(), parr_grow(), parr_insert() and parr_push() functions return on success 1; on error - 0. The arr_free(), arr_init(), arr_remove(), parr_free() and parr_init() functions do not return a value. The arr_item(), arr_sorted_find(), parr_pop(), parr_remove(), parr_sorted_find() and parr_top() functions return a pointer to the element on success; on error - NULL. The arr_newitem() function returns the index on success; on error -1. The arr_sorted_find_i() and parr_sorted_find_i() functions return an index.
SEE ALSO
soldout(3)
AUTHORS
The soldout library was written by Natasha "Kerensikova" Porte <natacha@instinctive.eu>. Manual page was originally written by Massimo Manghi <mxmanghi@apache.org>, and rewritten to mdoc format by Svyatoslav Mishyn <juef@openmailbox.org>.