The sets class can be used to perform set operations in your programs. It represents set elements as bits in a private array of unsigned long integers. The array size is a defined constant which can be changed to suit your application. The sets class supports the following set operations by means of C++ operator overloading: (1) union  The union of two sets A, B is the set of all elements which belong to either A or B. In the sets class, the symbol + is the binary union operator. (2) intersection  The intersection of two sets A, B is the set of all elements which belong to both A and B. The symbol * is the binary intersection operator:
A * B = {x: x is in A and x is in B } (3) complement  In set theory, sets are subsets of a fixed universal set U. In the sets class, U is the set of elements numbered from 1 to MAX_WORDS * WORD_SIZE. The complement of set A is the set of elements belonging to U but not belonging to A. The symbol ~ is the unary complement operator: ~A = {x: x is in U, x is not in A } (4) difference  The difference of two sets A, B is the set of all elements which belong to A less those in B. The symbol  is the binary difference operator: A  B = {x: x is in A, x is not in B} (5) symmetric difference  The symmetric difference of two sets A, B is the set of all elements which belong to A or to B, but not both.
Keywords: sets, class, c/c++,

