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.