|
cdcontainers
0.1.1
Library of data containers and collections for C programming language.
|
The cdc_map is a struct and functions that provide a map. More...
#include <cdcontainers/common.h>#include <cdcontainers/status.h>#include <cdcontainers/tables/imap.h>#include <assert.h>#include <stdarg.h>#include <stdbool.h>Go to the source code of this file.
Data Structures | |
| struct | cdc_map |
| The cdc_map is service struct. More... | |
| struct | cdc_map_iter |
| The cdc_map_iter is service struct. More... | |
Functions | |
| enum cdc_stat | cdc_map_ctor (const struct cdc_map_table *table, struct cdc_map **m, struct cdc_data_info *info) |
| Constructs an empty map. More... | |
| enum cdc_stat | cdc_map_ctorl (const struct cdc_map_table *table, struct cdc_map **m, struct cdc_data_info *info,...) |
| Constructs a map, initialized by an variable number of pointers on cdc_pair's(first - key, and the second - value). The last item must be CDC_END. More... | |
| enum cdc_stat | cdc_map_ctorv (const struct cdc_map_table *table, struct cdc_map **m, struct cdc_data_info *info, va_list args) |
| Constructs a map, initialized by args. The last item must be CDC_END. More... | |
| void | cdc_map_dtor (struct cdc_map *m) |
| Destroys the map. More... | |
| static enum cdc_stat | cdc_map_get (struct cdc_map *m, void *key, void **value) |
| Returns a value that is mapped to a key. If the key does not exist, then NULL will return. More... | |
| static size_t | cdc_map_count (struct cdc_map *m, void *key) |
| Returns the number of elements with key that compares equal to the specified argument key, which is either 1 or 0 since this container does not allow duplicates. More... | |
| static void | cdc_map_find (struct cdc_map *m, void *key, struct cdc_map_iter *it) |
| Finds an element with key equivalent to key. More... | |
| static size_t | cdc_map_size (struct cdc_map *m) |
| Returns the number of items in the map. More... | |
| static bool | cdc_map_empty (struct cdc_map *m) |
| Checks if the map has no elements. More... | |
| static void | cdc_map_clear (struct cdc_map *m) |
| Removes all the elements from the map. More... | |
| static enum cdc_stat | cdc_map_insert (struct cdc_map *m, void *key, void *value, struct cdc_map_iter *it, bool *inserted) |
| Inserts an element into the container, if the container doesn't already contain an element with an equivalent key. More... | |
| static enum cdc_stat | cdc_map_insert_or_assign (struct cdc_map *m, void *key, void *value, struct cdc_map_iter *it, bool *inserted) |
| Inserts an element or assigns to the current element if the key already exists. More... | |
| static size_t | cdc_map_erase (struct cdc_map *m, void *key) |
| Removes the element (if one exists) with the key equivalent to key. More... | |
| static void | cdc_map_swap (struct cdc_map *a, struct cdc_map *b) |
| Swaps maps a and b. This operation is very fast and never fails. More... | |
| static void | cdc_map_begin (struct cdc_map *m, struct cdc_map_iter *it) |
| Initializes the iterator to the beginning. More... | |
| static void | cdc_map_end (struct cdc_map *m, struct cdc_map_iter *it) |
| Initializes the iterator to the end. More... | |
| enum cdc_stat | cdc_map_iter_ctor (struct cdc_map *m, struct cdc_map_iter *it) |
| Constructs a map iterator. Should be called for each new iterator. More... | |
| static void | cdc_map_iter_dtor (struct cdc_map_iter *it) |
| Destroys the iterator. It should be called after the iterator is no longer needed. Releases resources. More... | |
| static enum cdc_iterator_type | cdc_map_iter_type (struct cdc_map_iter *it) |
| Returns a type of iterator. More... | |
| static void | cdc_map_iter_next (struct cdc_map_iter *it) |
| Advances the iterator to the next element in the map. More... | |
| static void | cdc_map_iter_prev (struct cdc_map_iter *it) |
| Advances the iterator to the previous element in the map. More... | |
| static bool | cdc_map_iter_has_next (struct cdc_map_iter *it) |
| Returns true if there is at least one element ahead of the iterator, i.e. the iterator is not at the back of the container; otherwise returns false. More... | |
| static bool | cdc_map_iter_has_prev (struct cdc_map_iter *it) |
| Returns true if there is at least one element behind the iterator, i.e. the iterator is not at the front of the container; otherwise returns false. More... | |
| static void * | cdc_map_iter_key (struct cdc_map_iter *it) |
| Returns an item's key. More... | |
| static void * | cdc_map_iter_value (struct cdc_map_iter *it) |
| Returns an item's value. More... | |
| static struct cdc_pair | cdc_map_iter_key_value (struct cdc_map_iter *it) |
| Returns a pair, where first - key, second - value. More... | |
| static bool | cdc_map_iter_is_eq (struct cdc_map_iter *it1, struct cdc_map_iter *it2) |
| Returns false if the iterator |it1| equal to the iterator |it2|, otherwise returns false. More... | |
The cdc_map is a struct and functions that provide a map.
Example usage map:
1.8.13