#include <set.hh>

Public Types | |
| typedef set_bkd_iter< T > | bkd_eiter |
| Backward iterator associated type. | |
| typedef fwd_eiter | eiter |
| Iterator associated type. | |
| typedef T | element |
| Element associated type. | |
| typedef set_fwd_iter< T > | fwd_eiter |
| Forward iterator associated type. | |
Public Member Functions | |
| void | clear () |
| Empty the set. | |
| const T | first_element () const |
| Return the first element of the set. | |
| bool | has (const T &elt) const |
Test if the object elt belongs to the set. | |
| template<typename U> | |
| set< T > & | insert (const set< U > &other) |
Insert the elements of other into the set. | |
| set< T > & | insert (const T &elt) |
Insert an element elt into the set. | |
| bool | is_empty () const |
| Test if the set is empty. | |
| const T | last_element () const |
| Return the last element of the set. | |
| std::size_t | memory_size () const |
| Return the size of this set in memory. | |
| unsigned | nelements () const |
| Return the number of elements of the set. | |
| const T & | operator[] (unsigned i) const |
| Return the i-th element of the set. | |
| set< T > & | remove (const T &elt) |
Remove an element elt into the set. | |
| set () | |
| Constructor without arguments. | |
| const std::vector< T > & | std_vector () const |
| Give access to the set elements. | |
This set class is designed to store a mathematical set and to present it to the user as a linear array (std::vector).
Elements are stored by copy. Implementation is lazy.
The set has two states: frozen or not. There is an automatic switch of state when the user modifies its contents (insert, remove, or clear) or access to its contents (op[i]).
The parameter T is the element type, which shall not be const-qualified.
The unicity of set elements is handled by the mln::util::ord mechanism.
| typedef set_bkd_iter<T> mln::util::set< T >::bkd_eiter |
Backward iterator associated type.
| typedef fwd_eiter mln::util::set< T >::eiter |
Iterator associated type.
| typedef T mln::util::set< T >::element |
Element associated type.
| typedef set_fwd_iter<T> mln::util::set< T >::fwd_eiter |
Forward iterator associated type.
| mln::util::set< T >::set | ( | ) | [inline] |
Constructor without arguments.
| void mln::util::set< T >::clear | ( | ) | [inline] |
Empty the set.
All elements contained in the set are destroyed so the set is emptied.
References mln::util::set< T >::is_empty().
| const T mln::util::set< T >::first_element | ( | ) | const [inline] |
Return the first element of the set.
References mln::util::set< T >::is_empty().
| bool mln::util::set< T >::has | ( | const T & | elt | ) | const [inline] |
| set< T > & mln::util::set< T >::insert | ( | const set< U > & | other | ) | [inline] |
Insert the elements of other into the set.
| [in] | other | The set containing the elements to be inserted. |
References mln::util::set< T >::is_empty(), and mln::util::set< T >::std_vector().
| set< T > & mln::util::set< T >::insert | ( | const T & | elt | ) | [inline] |
Insert an element elt into the set.
| [in] | elt | The element to be inserted. |
elt is already in the set, this method is a no-op.
Referenced by mln::p_key< K, P >::change_keys().
| bool mln::util::set< T >::is_empty | ( | ) | const [inline] |
Test if the set is empty.
References mln::util::set< T >::nelements().
Referenced by mln::util::set< T >::clear(), mln::util::set< T >::first_element(), mln::util::set< T >::insert(), and mln::util::set< T >::last_element().
| const T mln::util::set< T >::last_element | ( | ) | const [inline] |
Return the last element of the set.
References mln::util::set< T >::is_empty().
| std::size_t mln::util::set< T >::memory_size | ( | ) | const [inline] |
| unsigned mln::util::set< T >::nelements | ( | ) | const [inline] |
Return the number of elements of the set.
Referenced by mln::util::set< T >::is_empty(), mln::util::set< T >::memory_size(), and mln::util::set< T >::operator[]().
| const T & mln::util::set< T >::operator[] | ( | unsigned | i | ) | const [inline] |
Return the i-th element of the set.
| [in] | i | Index of the element to retrieve. |
References mln::util::set< T >::nelements().
| set< T > & mln::util::set< T >::remove | ( | const T & | elt | ) | [inline] |
| const std::vector< T > & mln::util::set< T >::std_vector | ( | ) | const [inline] |
Give access to the set elements.
The complexity of this method is O(1).
Referenced by mln::util::set< T >::insert().
1.5.6