Пример #1
0
int main(void)
{
	dr_set *set;

	set = dr_set_create(33);

	printf("IN SET: %s\n", dr_set_in(set, 4) ? "YES" : "NO");
	dr_set_add(set, 4);
	printf("IN SET: %s\n", dr_set_in(set, 4) ? "YES" : "NO");
	dr_set_remove(set, 4);
	printf("IN SET: %s\n", dr_set_in(set, 4) ? "YES" : "NO");

	dr_set_dump(set);
	dr_set_free(set);

	return 0;
}
Пример #2
0
inline int dr_set_find_first(dr_set *set, unsigned int *position)
{
	unsigned int i, j;

	for (i = 0; i < ((set->size + 7) / 8); i++) {
		if (set->setinfo[i] != 0x0) {
			for (j = 0; j < 8; j++) {
				if (dr_set_in(set, i * 8 + j)) {
					*position = i * 8 + j;
					return 1;
				}
			}
		}
	}

	return 0;
}