29 #include <initializer_list> 40 #ifndef DOXYGEN_SHOULD_SKIP_THIS 42 template <
typename Key >
43 class SetIteratorSafe;
44 template <
typename Key >
46 template <
typename Key,
typename Alloc >
49 template <
typename Key >
50 using SetConstIterator = SetIterator< Key >;
51 template <
typename Key >
52 using SetConstIteratorSafe = SetIteratorSafe< Key >;
66 class SetIteratorStaticEnd {
72 static const SetIteratorSafe< int >* __SetIterEndSafe;
78 static const SetIterator< int >* __SetIterEnd;
84 static const SetIteratorSafe< int >* endSafe4Statics();
90 static const SetIteratorSafe< int >* constEndSafe4Statics();
96 static const SetIterator< int >* end4Statics();
102 static const SetIterator< int >* constEnd4Statics();
105 template <
typename Key,
typename Alloc >
161 template <
typename Key,
typename Alloc = std::allocator< Key > >
198 bool resize_policy =
true);
204 Set(std::initializer_list< Key > list);
217 template <
typename OtherAlloc >
250 template <
typename OtherAlloc >
266 template <
typename OtherAlloc >
275 template <
typename OtherAlloc >
285 template <
typename OtherAlloc >
295 template <
typename OtherAlloc >
305 template <
typename OtherAlloc >
315 template <
typename OtherAlloc >
326 template <
typename OtherAlloc >
362 void insert(
const Key& k);
370 void insert(Key&& k);
382 template <
typename... Args >
383 void emplace(Args&&... args);
392 void erase(
const Key& k);
411 Size size() const noexcept;
417 bool contains(const Key& k) const;
422 template < typename OtherAlloc >
423 bool isSubsetOf(const
Set< Key, OtherAlloc >& s) const;
428 template < typename OtherAlloc >
429 bool isSupersetOf(const
Set< Key, OtherAlloc >& s) const;
435 bool exists(const Key& k) const;
441 bool empty() const noexcept;
447 std::
string toString() const;
495 const
iterator& end() const noexcept;
538 static const
iterator& end4Statics();
666 Size capacity() const;
675 void resize(
Size new_capacity);
687 void setResizePolicy(const
bool new_policy);
694 bool resizePolicy() const;
716 typename NewAlloc = typename Alloc::template rebind< NewKey >::other >
717 HashTable< Key, NewKey, NewAlloc > hashMap(NewKey (*f)(const Key&),
718 Size capacity = 0) const;
735 typename NewAlloc = typename Alloc::template rebind< NewKey >::other >
736 HashTable< Key, NewKey, NewAlloc > hashMap(const NewKey& val,
737 Size size = 0) const;
749 typename NewAlloc = typename Alloc::template rebind< NewKey >::other >
750 List< NewKey, NewAlloc > listMap(NewKey (*f)(const Key&)) const;
759 template < typename K, typename A >
767 Set(const
HashTable< Key,
bool, Alloc >& h);
807 template < typename Key >
847 template <
typename Alloc >
871 ~SetIteratorSafe() noexcept;
956 const Key* operator->()
const;
968 void clear() noexcept;
974 template <
typename K,
typename A >
1021 template <
typename Key >
1061 template <
typename Alloc >
1157 const Key* operator->()
const;
1169 void clear() noexcept;
1175 template <
typename K,
typename A >
1185 template <
typename Key,
typename Alloc >
1186 std::ostream& operator<<(std::ostream&, const Set< Key, Alloc >&);
1190 template <
typename T,
typename Alloc >
1207 #ifndef GUM_NO_EXTERN_TEMPLATE_CLASS 1208 # ifndef GUM_NO_EXTERN_TEMPLATE_CLASS 1209 # ifndef GUM_NO_EXTERN_TEMPLATE_CLASS 1210 # ifndef GUM_NO_EXTERN_TEMPLATE_CLASS 1211 # ifndef GUM_NO_EXTERN_TEMPLATE_CLASS 1212 # ifndef GUM_NO_EXTERN_TEMPLATE_CLASS 1220 #ifndef GUM_NO_EXTERN_TEMPLATE_CLASS 1221 # ifndef GUM_NO_EXTERN_TEMPLATE_CLASS 1222 # ifndef GUM_NO_EXTERN_TEMPLATE_CLASS 1223 # ifndef GUM_NO_EXTERN_TEMPLATE_CLASS 1224 # ifndef GUM_NO_EXTERN_TEMPLATE_CLASS 1225 # ifndef GUM_NO_EXTERN_TEMPLATE_CLASS 1233 #ifndef GUM_NO_EXTERN_TEMPLATE_CLASS 1234 # ifndef GUM_NO_EXTERN_TEMPLATE_CLASS 1235 # ifndef GUM_NO_EXTERN_TEMPLATE_CLASS 1236 # ifndef GUM_NO_EXTERN_TEMPLATE_CLASS 1237 # ifndef GUM_NO_EXTERN_TEMPLATE_CLASS 1238 # ifndef GUM_NO_EXTERN_TEMPLATE_CLASS 1246 #ifndef GUM_NO_EXTERN_TEMPLATE_CLASS 1247 # ifndef GUM_NO_EXTERN_TEMPLATE_CLASS 1248 # ifndef GUM_NO_EXTERN_TEMPLATE_CLASS 1249 # ifndef GUM_NO_EXTERN_TEMPLATE_CLASS 1250 # ifndef GUM_NO_EXTERN_TEMPLATE_CLASS 1251 # ifndef GUM_NO_EXTERN_TEMPLATE_CLASS 1260 #ifndef GUM_NO_EXTERN_TEMPLATE_CLASS 1261 # ifndef GUM_NO_EXTERN_TEMPLATE_CLASS 1262 # ifndef GUM_NO_EXTERN_TEMPLATE_CLASS 1263 # ifndef GUM_NO_EXTERN_TEMPLATE_CLASS 1264 # ifndef GUM_NO_EXTERN_TEMPLATE_CLASS 1265 # ifndef GUM_NO_EXTERN_TEMPLATE_CLASS 1273 #ifndef GUM_NO_EXTERN_TEMPLATE_CLASS 1274 # ifndef GUM_NO_EXTERN_TEMPLATE_CLASS 1275 # ifndef GUM_NO_EXTERN_TEMPLATE_CLASS 1276 # ifndef GUM_NO_EXTERN_TEMPLATE_CLASS 1277 # ifndef GUM_NO_EXTERN_TEMPLATE_CLASS 1278 # ifndef GUM_NO_EXTERN_TEMPLATE_CLASS aGrUM's Potential is a multi-dimensional array with tensor operators.
std::ptrdiff_t difference_type
value_type * pointer
Types for STL compliance.
Implementation of the Set.
Formula operator+(const Formula &a, const Formula &b)
Safe iterators for the Set classDevelopers may consider using Set<x>::iterator_safe instead of SetIte...
std::ptrdiff_t difference_type
Key value_type
Types for STL compliance.
std::forward_iterator_tag iterator_category
Types for STL compliance.
static constexpr Size default_size
The default number of slots in hashtables.
Class template representing hashing function of LpCol.
Base class for discrete random variable.
Generic doubly linked lists.
gum is the global namespace for all aGrUM entities
The class for generic Hash Tables.
Representation of a setA Set is a structure that contains arbitrary elements.
value_type & reference
Types for STL compliance.
HashTableConstIteratorSafe< Key, bool > __ht_iter
The underlying iterator for the set's hash table containing the data.
Position
An enumeration to position the iterator at the beginning or the end of the set.
std::ostream & operator<<(std::ostream &output, const BayesNet< GUM_SCALAR > &bn)
Prints map's DAG in output using the Graphviz-dot format.
Generic class for manipulating lists.
HashTableConstIterator< Key, bool > __ht_iter
The underlying iterator for the set's hash table containing the data.
Position
An enumeration to position the iterator at the beginning or the end of the set.
const value_type & const_reference
Types for STL compliance.
Formula operator*(const Formula &a, const Formula &b)
std::forward_iterator_tag iterator_category
Types for STL compliance.
bool operator==(const TiXmlString &a, const TiXmlString &b)
ListConstIterator< Val >::difference_type operator-(const ListConstIterator< Val > &iter1, const ListConstIterator< Val > &iter2)
For STL compliance, a distance operator.
Unsafe iterators for the Set class.
std::ptrdiff_t difference_type
Types for STL compliance.
std::allocator< gum::Potential< GUM_SCALAR > * > allocator_type
bool operator!=(const TiXmlString &a, const TiXmlString &b)
All hash functions should inherit from this class.
const value_type * const_pointer
Types for STL compliance.
std::size_t Size
In aGrUM, hashed values are unsigned long int.
MultiDimInterface & operator>>(MultiDimInterface &c, const DiscreteVariable &v)
Removes a var from the variables of the MutliDimAdressing.
Class hash tables iterators.