1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- /*
- * category: [data structure]
- * apply status: framework
- * edit status: not
- * build status: windows&linux
- * description:
- */
- #ifndef BITARRAY_H
- #define BITARRAY_H
- #pragma once
- #include "config.h"
- #ifdef __cplusplus
- extern "C" {
- #endif
- typedef struct bitarray_t bitarray_t;
- struct bitarray_t {
- int nelts;
- int nalloc;
- int *bits;
- };
- /**
- * make bitarray
- */
- TOOLKIT_API bitarray_t* bitarray_make(int nelts);
- TOOLKIT_API void bitarray_free(bitarray_t *arr);
- TOOLKIT_API int bitarray_empty(bitarray_t *arr);
- TOOLKIT_API void bitarray_push(bitarray_t *arr, int v);
- TOOLKIT_API int bitarray_pop(bitarray_t *arr);
- TOOLKIT_API void bitarray_clear(bitarray_t *arr);
- TOOLKIT_API void bitarray_cat(bitarray_t *dst, const bitarray_t *src);
- TOOLKIT_API bitarray_t * bitarray_copy(const bitarray_t *arr);
- TOOLKIT_API void bitarray_reserve(bitarray_t *arr, int cnt);
- TOOLKIT_API void bitarray_set(bitarray_t *arr, int pos, int v);
- TOOLKIT_API int bitarray_get(const bitarray_t *arr, int pos);
- TOOLKIT_API void bitarray_flip(const bitarray_t *arr, int pos);
- #ifdef __cplusplus
- } // extern "C" {
- #endif
- #endif // BITARRAY_H
|