Lines Matching full:bitvector
32 * from zero. All operations on a BitVector are unsynchronized.
34 class BitVector {
39 * @brief Convenient iterator across the indexes of the BitVector's set bits.
42 * to the highest index of the BitVector's set bits. Instances can be retrieved
43 * only through BitVector::Indexes() which returns an IndexContainer wrapper
73 IndexIterator(const BitVector* bit_vector, begin_tag)
78 IndexIterator(const BitVector* bit_vector, end_tag)
92 friend class BitVector::IndexContainer;
96 * @brief BitVector wrapper class for iteration across indexes of set bits.
100 explicit IndexContainer(const BitVector* bit_vector) : bit_vector_(bit_vector) { }
111 const BitVector* const bit_vector_;
116 BitVector(const BitVector& other) = delete;
117 BitVector& operator=(const BitVector& other) = delete;
119 BitVector(BitVector&& other)
128 BitVector(uint32_t start_bits,
132 BitVector(bool expandable,
137 BitVector(const BitVector& src,
141 virtual ~BitVector();
183 void Copy(const BitVector* src);
186 void Intersect(const BitVector* src2);
189 bool Union(const BitVector* src);
192 bool UnionIfNotIn(const BitVector* union_with, const BitVector* not_in);
194 void Subtract(const BitVector* src);
197 bool Equal(const BitVector* src) const;
203 bool SameBitsSet(const BitVector *src) const;
205 bool IsSubsetOf(const BitVector *other) const;
278 * @brief Dump the bitvector into buffer in a 00101..01 format.
279 * @param buffer the ostringstream used to dump the bitvector into.