![]() |
|
A hash set with contiguous storage, suitable for use with TfSpan, e.g. More...
#include <denseHashSet.h>
Public Types | |
| using | value_type = Element |
| using | pointer = value_type* |
| using | const_pointer = const value_type* |
| typedef _Vector::const_iterator | iterator |
| An iterator type for this set. | |
| typedef _Vector::const_iterator | const_iterator |
| A const_iterator type for this set. | |
| typedef std::pair< const_iterator, bool > | insert_result |
| Return type for insert() method. | |
Public Member Functions | |
| TfDenseHashSet (const HashFn &hashFn=HashFn(), const EqualElement &equalElement=EqualElement()) | |
| Ctor. | |
| TfDenseHashSet (const TfDenseHashSet &rhs) | |
| Copy Ctor. | |
| TfDenseHashSet (TfDenseHashSet &&rhs)=default | |
| Move Ctor. | |
| template<class Iterator > | |
| TfDenseHashSet (Iterator begin, Iterator end) | |
| Construct from range. | |
| TfDenseHashSet (std::initializer_list< Element > l) | |
| Construct from an initializer_list. | |
| TfDenseHashSet & | operator= (const TfDenseHashSet &rhs) |
| Copy assignment operator. | |
| TfDenseHashSet & | operator= (TfDenseHashSet &&rhs)=default |
| Move assignment operator. | |
| TfDenseHashSet & | operator= (std::initializer_list< Element > l) |
| Assignment from an initializer_list. | |
| bool | operator== (const TfDenseHashSet &rhs) const |
| Equality operator. | |
| bool | operator!= (const TfDenseHashSet &rhs) const |
| void | clear () |
| Erases all of the elements. | |
| void | swap (TfDenseHashSet &rhs) |
| Swaps the contents of two sets. | |
| bool | empty () const |
true if the set's size is 0. | |
| size_t | size () const |
| Returns the size of the set. | |
| const_iterator | begin () const |
| Returns a const_iterator pointing to the beginning of the set. | |
| const_iterator | end () const |
| Returns a const_iterator pointing to the end of the set. | |
| const_iterator | cbegin () const |
| Returns a const_iterator pointing to the beginning of the set. | |
| const_iterator | cend () const |
| Returns a const_iterator pointing to the end of the set. | |
| pointer | data () |
| Returns a pointer to the set's data. | |
| const_pointer | data () const |
| Returns a const pointer to the set's data. | |
| const_pointer | cdata () const |
| Returns a const pointer to the set's data. | |
| const_iterator | find (const Element &k) const |
Finds the element with key k. | |
| size_t | count (const Element &k) const |
Returns the number of elements with key k. | |
| insert_result | insert (const value_type &v) |
| Returns a pair of <iterator, bool> where iterator points to the element in the list and bool is true if a new element was inserted. | |
| template<class IteratorType > | |
| void | insert (IteratorType i0, IteratorType i1) |
| Insert a range into the hash set. | |
| template<class Iterator > | |
| void | insert_unique (Iterator begin, Iterator end) |
| Insert a range of unique elements into the container. | |
| size_t | erase (const Element &k) |
Erase element with key k. | |
| void | erase (const iterator &iter) |
Erases element pointed to by iter. | |
| void | erase (const iterator &i0, const iterator &i1) |
| Erases a range from the set. | |
| void | shrink_to_fit () |
| Optimize storage space. | |
| const Element & | operator[] (size_t index) const |
Index into set via index. | |
A hash set with contiguous storage, suitable for use with TfSpan, e.g.
When the number of elements in the set is small, search operations are done by linear search. When the size surpassees Threshold, a hash table is allocated and used to accelerate lookup.
Definition at line 39 of file denseHashSet.h.
| _Vector::const_iterator const_iterator |
A const_iterator type for this set.
Definition at line 67 of file denseHashSet.h.
| using const_pointer = const value_type* |
Definition at line 45 of file denseHashSet.h.
| std::pair<const_iterator, bool> insert_result |
Return type for insert() method.
Definition at line 70 of file denseHashSet.h.
| _Vector::const_iterator iterator |
An iterator type for this set.
Note that this one is const as well, as we can't allow in-place modification of elements due to the potentially allocated hash map.
Definition at line 64 of file denseHashSet.h.
| using pointer = value_type* |
Definition at line 44 of file denseHashSet.h.
| using value_type = Element |
Definition at line 43 of file denseHashSet.h.
|
inlineexplicit |
Ctor.
Definition at line 76 of file denseHashSet.h.
|
inline |
Copy Ctor.
Definition at line 86 of file denseHashSet.h.
|
default |
Move Ctor.
|
inline |
Construct from range.
Definition at line 100 of file denseHashSet.h.
|
inline |
Construct from an initializer_list.
Definition at line 106 of file denseHashSet.h.
|
inline |
Returns a const_iterator pointing to the beginning of the set.
Definition at line 182 of file denseHashSet.h.
|
inline |
Returns a const_iterator pointing to the beginning of the set.
Definition at line 194 of file denseHashSet.h.
|
inline |
Returns a const pointer to the set's data.
Definition at line 218 of file denseHashSet.h.
|
inline |
Returns a const_iterator pointing to the end of the set.
Definition at line 200 of file denseHashSet.h.
|
inline |
Erases all of the elements.
Definition at line 156 of file denseHashSet.h.
|
inline |
Returns the number of elements with key k.
Which is either 0 or 1.
Definition at line 245 of file denseHashSet.h.
|
inline |
Returns a pointer to the set's data.
Definition at line 206 of file denseHashSet.h.
|
inline |
Returns a const pointer to the set's data.
Definition at line 212 of file denseHashSet.h.
|
inline |
true if the set's size is 0.
Definition at line 170 of file denseHashSet.h.
|
inline |
Returns a const_iterator pointing to the end of the set.
Definition at line 188 of file denseHashSet.h.
|
inline |
Erase element with key k.
Returns the number of elements erased.
Definition at line 314 of file denseHashSet.h.
|
inline |
Erases a range from the set.
Definition at line 351 of file denseHashSet.h.
|
inline |
Erases element pointed to by iter.
Definition at line 326 of file denseHashSet.h.
|
inline |
Finds the element with key k.
Definition at line 224 of file denseHashSet.h.
|
inline |
Returns a pair of <iterator, bool> where iterator points to the element in the list and bool is true if a new element was inserted.
Definition at line 252 of file denseHashSet.h.
|
inline |
Insert a range into the hash set.
Note that i0 and i1 can't point into the hash set.
Definition at line 284 of file denseHashSet.h.
|
inline |
Insert a range of unique elements into the container.
[begin, end) must not contain any duplicate elements.
Definition at line 301 of file denseHashSet.h.
|
inline |
Definition at line 150 of file denseHashSet.h.
|
inline |
Copy assignment operator.
Definition at line 112 of file denseHashSet.h.
|
inline |
Assignment from an initializer_list.
Definition at line 126 of file denseHashSet.h.
|
default |
Move assignment operator.
|
inline |
Equality operator.
Definition at line 134 of file denseHashSet.h.
|
inline |
Index into set via index.
Definition at line 394 of file denseHashSet.h.
|
inline |
Optimize storage space.
Definition at line 368 of file denseHashSet.h.
|
inline |
Returns the size of the set.
Definition at line 176 of file denseHashSet.h.
|
inline |
Swaps the contents of two sets.
Definition at line 163 of file denseHashSet.h.