Bit sets¶
#include <libcork/ds.h>
This sections defines a type for storing an array of bits. This data structure is most often used to implement a set of integers. It is particularly good when you expect your sets to be dense. You should not use a bitset if the number of possibly elements is outrageously large, however, since that would cause your bitset to exhaust the available memory.
-
struct
cork_bitset¶ An array of bits. You should not allocate any instances of this type yourself; use
cork_bitset_new()instead.-
size_t
bit_count¶ The number of bits that are included in this array. (Each bit can be on or off; this does not give you the number of bits that are on, it gives you the number of bits in total, on or off.)
-
size_t
-
struct cork_bitset *
cork_bitset_new(size_t bit_count)¶ Create a new bitset with enough space to store the given number of bits. All bits will be initialized to
0.
-
void
cork_bitset_free(struct cork_bitset *set)¶ Free a bitset.
-
bool
cork_bitset_get(struct cork_bitset *set, size_t index)¶ Return whether the given bit is on or off in set. It is your responsibility to ensure that index is within the valid range for set.
-
void
cork_bitset_set(struct cork_bitset *set, size_t index, bool value)¶ Turn the given bit on or off in set. It is your responsibility to ensure that index is within the valid range for set.
-
void
cork_bitset_clear(struct cork_bitset *set)¶ Turn off of the bits in set.