NuTo
Numerics Tool
Classes | Public Types | Public Member Functions | List of all members
NuTo::Group< T > Class Template Reference

Ordered container class for elements, nodes and the like. More...

#include <Group.h>

Public Types

typedef boost::indirect_iterator< typename Data::iterator > GroupIterator
 indirect (dereferencing) iterator to provide value semantics for the iterators More...
 
typedef boost::indirect_iterator< typename Data::const_iterator > ConstGroupIterator
 

Public Member Functions

 Group ()=default
 Create an empty group. More...
 
 Group (T &element)
 Create a group containing a single element. More...
 
 Group (std::initializer_list< std::reference_wrapper< T >> elements)
 Create a group containing multiple elements. More...
 
T & operator[] (size_t index)
 
const T & operator[] (size_t index) const
 
void Add (T &element)
 Add element to group. More...
 
bool Contains (const T &element) const
 True if element is contained in group. More...
 
bool Empty () const
 True if group is empty. More...
 
auto Size () const
 Number of constituents. More...
 
ConstGroupIterator begin () const
 Iterate over group elements (by value not pointer) More...
 
ConstGroupIterator end () const
 Iterate over group elements (by value not pointer) More...
 
GroupIterator begin ()
 Iterate over group elements (by value not pointer) More...
 
GroupIterator end ()
 Iterate over group elements (by value not pointer) More...
 

Detailed Description

template<typename T>
class NuTo::Group< T >

Ordered container class for elements, nodes and the like.

No duplicates.

The group saves pointers to its members but can be iterated through by value. The members are sorted in order of their insertion.

Template Parameters
Ttype of group members

Member Typedef Documentation

template<typename T>
typedef boost::indirect_iterator<typename Data::const_iterator> NuTo::Group< T >::ConstGroupIterator
template<typename T>
typedef boost::indirect_iterator<typename Data::iterator> NuTo::Group< T >::GroupIterator

indirect (dereferencing) iterator to provide value semantics for the iterators

Constructor & Destructor Documentation

template<typename T>
NuTo::Group< T >::Group ( )
default

Create an empty group.

template<typename T>
NuTo::Group< T >::Group ( T &  element)
inline

Create a group containing a single element.

Parameters
elementsingle element
template<typename T>
NuTo::Group< T >::Group ( std::initializer_list< std::reference_wrapper< T >>  elements)
inline

Create a group containing multiple elements.

Parameters
elementsvector of elements
Remarks
std::reference_wrapper for value semantics

Member Function Documentation

template<typename T>
void NuTo::Group< T >::Add ( T &  element)
inline

Add element to group.

Parameters
elementsingle element to add
template<typename T>
ConstGroupIterator NuTo::Group< T >::begin ( ) const
inline

Iterate over group elements (by value not pointer)

template<typename T>
GroupIterator NuTo::Group< T >::begin ( )
inline

Iterate over group elements (by value not pointer)

template<typename T>
bool NuTo::Group< T >::Contains ( const T &  element) const
inline

True if element is contained in group.

Parameters
elementsingle element to check
template<typename T>
bool NuTo::Group< T >::Empty ( ) const
inline

True if group is empty.

template<typename T>
ConstGroupIterator NuTo::Group< T >::end ( ) const
inline

Iterate over group elements (by value not pointer)

template<typename T>
GroupIterator NuTo::Group< T >::end ( )
inline

Iterate over group elements (by value not pointer)

template<typename T>
T& NuTo::Group< T >::operator[] ( size_t  index)
inline
template<typename T>
const T& NuTo::Group< T >::operator[] ( size_t  index) const
inline
template<typename T>
auto NuTo::Group< T >::Size ( ) const
inline

Number of constituents.


The documentation for this class was generated from the following file: