// Create a bit vector with 20 bits (and set them all to False). BitVector bv (20, False); // Change some individual bits: // Turn On (make True) bit 19. bv.setBit (19); // Turn Off (make False) bit 12 (superfluous here). bv.clearBit (12); // Toggle bit 5 (here: change value from 0 (False) to 1 (True)). bv.toggleBit (5) // Another way of setting a bit using the index operator. bv[0] = True; // Assign the value of bit 0 to bit 1 (in three ways). bv[1] = bv.getBit(0); bv[1] = bv[0]; bv.putBit (1, bv.getBit(0)); // Show the bit vector size and its value on standard output. cout << "Size of bit vector: "<< b.nbits() <<"\n"; cout << "Value of bit vector: "<< bv <<"\n"; // Perform logical operations on bit vectors. // Create two more bit vectors. BitVector bv2 (40, False); BitVector bv3 (40, True); // bitwise OR bv = bv2 | bv3; // bitwise AND bv = bv2 & bv3; // bitwise XOR bv = bv2 ^ bv3; // bitwise NOT bv = ~bv2; // Reset all bits to False, and then to True bv = False; bv.set (True); // Change the vector's size to 10 (and copy the old values). bv.resize (10); // Change back to original size and set all bits to True. void bv.resize (size, True, False);
Create a bit vector of length 0.
Create a bit vector with length bits and set all bits to to the specified state.
Copy constructor (copy semantics).
Delete the bit vector.
Assignment (copy semantics).
Set all bits to the given state.
Return the number of bits in the bitvector.
Set a bit at the given position (0-relative). In debug-mode an exception is thrown when the position is invalid.
Clear a bit at the given position (0-relative). In debug-mode an exception is thrown when the position is invalid.
Toggle a bit at the given position (0-relative). It returns the original state. In debug-mode an exception is thrown when the position is invalid.
Get a bit at the given position (0-relative). In debug-mode an exception is thrown when the position is invalid.
Set a bit at the given position (0-relative) to the given state. In debug-mode an exception is thrown when the position is invalid.
Index operator to access the specified bit. In debug-mode an exception is thrown when the position is invalid.
Logical operations on whole bit vectors. The binary operators & (bitwise AND), | (bitwise OR) and ^ (bitwise XOR), and the unary operator ~ (bitwise NOT) are provided. An exception is thrown if the lengths of the vectors differ.
Logical in-place operations on whole bit vectors. The binary operators & (bitwise AND), | (bitwise OR) and ^ (bitwise XOR), and the unary operator reverse (bitwise NOT) are provided. An exception is thrown if the lengths of the vectors differ.
Returns True if all bits are equal. An exception is thrown if the lengths of the vectors differ.
Returns True if a bit differs. An exception is thrown if the lengths of the vectors differ.
Resize the bit vector to the new length. By default the original bits are copied. The remaining bits (or all bits in case of no copy) are set the the given state.
Set all bits of the bit vector to the specified state.
Set length bits starting at the start position (0-relative) to the given state. An exception is thrown if start+length exceeds the length of the vector.
Copy length bits starting at thatStart in the other BitVector to this BitVector starting at thisStart.
Write a representation of the bit vector (a list of zeros and ones enclosed in square parentheses) to ostream.
Set the bit to the state of the bit in the other BitVector. Thus assignment has not the usual copy semantics, but affects the underlying BitVector bit.
Set to a state.
Defines the conversion from BitVectorHelper to Bool.
The constructor we actually use.