#include <set_of.hh>
Public Member Functions | |
void | clear () |
Make the set empty. | |
const E & | element (unsigned i) const |
Return the i-th element of the set. | |
bool | has (const E &elt) const |
Test if the object elt belongs to the set. | |
set_of_< E > & | insert (const E &elt) |
Insert an element elt into the set. | |
bool | is_empty () const |
Test if the set is empty. | |
unsigned | nelements () const |
Return the number of elements of the set. | |
set_of_< E > & | remove (const E &elt) |
Remove an element elt into the set. | |
const std::vector< E > & | vect () const |
Give access to the set elements. | |
Protected Member Functions | |
set_of_ () | |
Constructor without arguments. | |
Protected Attributes | |
std::set< E > | s_ |
Set of elements. | |
Private Member Functions | |
void | update_ () const |
Update v_ from s_. | |
Private Attributes | |
bool | needs_update_ |
Tell if v_ needs to be updated. | |
std::vector< E > | v_ |
Array of elements. |
E
is the element type, which shall not be const-qualified.Definition at line 59 of file set_of.hh.
set_of_ | ( | ) | [inline, protected] |
Constructor without arguments.
Print a set s
into the output stream ostr
.
[in,out] | ostr | An output stream. |
[in] | s | A set. |
ostr
. Definition at line 187 of file set_of.hh.
References mln::internal::set_of_< E >::needs_update_.
void mln::internal::set_of_< E >::clear | ( | ) | [inline] |
Make the set empty.
All elements contained in the set are destroyed so the set is emptied.
Definition at line 254 of file set_of.hh.
References mln::internal::set_of_< E >::is_empty(), mln::internal::set_of_< E >::needs_update_, mln::internal::set_of_< E >::s_, and mln::internal::set_of_< E >::v_.
const E & mln::internal::set_of_< E >::element | ( | unsigned | i | ) | const [inline] |
Return the i-th element of the set.
[in] | i | Index of the element to retrieve. |
Definition at line 217 of file set_of.hh.
References mln::internal::set_of_< E >::needs_update_, mln::internal::set_of_< E >::update_(), and mln::internal::set_of_< E >::v_.
bool mln::internal::set_of_< E >::has | ( | const E & | elt | ) | const [inline] |
set_of_< E > & mln::internal::set_of_< E >::insert | ( | const E & | 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.
Definition at line 195 of file set_of.hh.
References mln::internal::set_of_< E >::needs_update_, and mln::internal::set_of_< E >::s_.
bool mln::internal::set_of_< E >::is_empty | ( | ) | const [inline] |
Test if the set is empty.
Definition at line 246 of file set_of.hh.
References mln::internal::set_of_< E >::nelements().
Referenced by mln::internal::set_of_< E >::clear().
unsigned mln::internal::set_of_< E >::nelements | ( | ) | const [inline] |
Return the number of elements of the set.
Definition at line 228 of file set_of.hh.
References mln::internal::set_of_< E >::needs_update_, mln::internal::set_of_< E >::update_(), and mln::internal::set_of_< E >::v_.
Referenced by mln::internal::set_of_< E >::is_empty().
set_of_< E > & mln::internal::set_of_< E >::remove | ( | const E & | elt | ) | [inline] |
Remove an element elt
into the set.
[in] | elt | The element to be deleted. |
elt
is not in the set, this method is a no-op.
Definition at line 206 of file set_of.hh.
References mln::internal::set_of_< E >::needs_update_, and mln::internal::set_of_< E >::s_.
void mln::internal::set_of_< E >::update_ | ( | ) | const [inline, private] |
Update v_ from s_.
FIXME: explain.
Definition at line 275 of file set_of.hh.
References mln::internal::set_of_< E >::needs_update_, mln::internal::set_of_< E >::s_, and mln::internal::set_of_< E >::v_.
Referenced by mln::internal::set_of_< E >::element(), mln::internal::set_of_< E >::nelements(), and mln::internal::set_of_< E >::vect().
const std::vector< E > & mln::internal::set_of_< E >::vect | ( | ) | const [inline] |
Give access to the set elements.
The complexity of this method is O(1).
Definition at line 265 of file set_of.hh.
References mln::internal::set_of_< E >::needs_update_, mln::internal::set_of_< E >::update_(), and mln::internal::set_of_< E >::v_.
bool mln::internal::set_of_< E >::needs_update_ [mutable, private] |
Tell if v_ needs to be updated.
Definition at line 163 of file set_of.hh.
Referenced by mln::internal::set_of_< E >::clear(), mln::internal::set_of_< E >::element(), mln::internal::set_of_< E >::insert(), mln::internal::set_of_< E >::nelements(), mln::internal::set_of_< E >::remove(), mln::internal::set_of_< E >::set_of_(), mln::internal::set_of_< E >::update_(), and mln::internal::set_of_< E >::vect().
std::set<E> mln::internal::set_of_< E >::s_ [protected] |
Set of elements.
This structure is always up-to-date w.r.t. the set contents.
Definition at line 153 of file set_of.hh.
Referenced by mln::internal::set_of_< E >::clear(), mln::internal::set_of_< E >::has(), mln::internal::set_of_< E >::insert(), mln::internal::set_of_< E >::remove(), and mln::internal::set_of_< E >::update_().
std::vector<E> mln::internal::set_of_< E >::v_ [mutable, private] |
Array of elements.
This structure is only updated (if required) when elements are accessed.
Definition at line 146 of file set_of.hh.
Referenced by mln::internal::set_of_< E >::clear(), mln::internal::set_of_< E >::element(), mln::internal::set_of_< E >::nelements(), mln::internal::set_of_< E >::update_(), and mln::internal::set_of_< E >::vect().