UIndirectList< T > Class Template Reference

A List with indirect addressing. Like IndirectList but does not store addressing. More...

Inheritance diagram for UIndirectList< T >:
[legend]
Collaboration diagram for UIndirectList< T >:
[legend]

Public Member Functions

 UIndirectList (const UList< T > &values, const labelUList &addr)
 Shallow copy values and addressing. More...
 
 UIndirectList (const UIndirectList< T > &list)
 Copy construct (shallow copy values and addressing) More...
 
void operator= (const UIndirectList< T > &rhs)
 Deep copy values, Fatal if list sizes are not identical. More...
 
- Public Member Functions inherited from IndirectListBase< T, labelUList >
 IndirectListBase ()=delete
 No default construct. More...
 
 IndirectListBase (const UList< T > &values, const labelUList &addr)
 Store references to the values list and the addressing array. More...
 
label size () const noexcept
 The number of elements in the list. More...
 
bool empty () const noexcept
 True if the list is empty (ie, size() is zero). More...
 
const UList< T > & values () const noexcept
 The list of values (without addressing) More...
 
UList< T > & values () noexcept
 The list of values (without addressing) More...
 
const labelUListaddressing () const noexcept
 The addressing used for the list. More...
 
bool uniform () const
 True if all entries have identical values, and list is non-empty. More...
 
const Tfirst () const
 The first element of the list. More...
 
Tfirst ()
 The first element of the list. More...
 
const Tlast () const
 The last element of the list. More...
 
Tlast ()
 The last element of the list. More...
 
label fcIndex (const label i) const
 
label rcIndex (const label i) const
 
const TfcValue (const label i) const
 Return forward circular value (ie, next value in the list) More...
 
TfcValue (const label i)
 Return forward circular value (ie, next value in the list) More...
 
const TrcValue (const label i) const
 Return reverse circular value (ie, previous value in the list) More...
 
TrcValue (const label i)
 Return reverse circular value (ie, previous value in the list) More...
 
label find (const T &val, label pos=0) const
 Find index of the first occurrence of the value. More...
 
label rfind (const T &val, label pos=-1) const
 Find index of the last occurrence of the value. More...
 
bool found (const T &val, label pos=0) const
 True if the value if found in the list. More...
 
List< Toperator() () const
 Return the addressed elements as a List. More...
 
Toperator[] (const label i)
 Non-const access to an element in the list. More...
 
const Toperator[] (const label i) const
 Const access to an element in the list. More...
 
void operator= (const T &val)
 Assign all addressed elements to the given value. More...
 
void operator= (const Foam::zero)
 Assignment of all entries to zero. More...
 
void operator= (const UList< T > &rhs)
 Deep copy values from a list of the addressed elements. More...
 
void operator= (const IndirectListBase< T, labelUList > &rhs)
 Deep copy values from a list of the addressed elements. More...
 
void operator= (const IndirectListBase< T, AnyAddr > &rhs)
 Deep copy values from a list of the addressed elements. More...
 
iterator begin ()
 Return an iterator at begin of list. More...
 
const_iterator begin () const
 Return a const_iterator at begin of list. More...
 
iterator end ()
 Return an iterator at end of list. More...
 
const_iterator end () const
 Return a const_iterator at end of list. More...
 
const_iterator cbegin () const
 Return a const_iterator at begin of list. More...
 
const_iterator cend () const
 Return a const_iterator at end of list. More...
 
OstreamwriteList (Ostream &os, const label shortLen=0) const
 Write List, with line-breaks in ASCII when length exceeds shortLen. More...
 

Additional Inherited Members

- Public Types inherited from IndirectListBase< T, labelUList >
typedef T value_type
 Type of values the list contains. More...
 
typedef Tpointer
 The pointer type for non-const access to value_type items. More...
 
typedef const Tconst_pointer
 The pointer type for const access to value_type items. More...
 
typedef Treference
 The type used for storing into value_type objects. More...
 
typedef const Tconst_reference
 The type used for reading from constant value_type objects. More...
 
typedef label size_type
 The type to represent the size of a UList. More...
 
typedef label difference_type
 The difference between iterator objects. More...
 
typedef labelUList addressing_type
 The addressing type (non-stl definition) More...
 
- Protected Member Functions inherited from IndirectListBase< T, labelUList >
void copyList (const ListType &rhs)
 Deep copy values from the list. More...
 

Detailed Description

template<class T>
class Foam::UIndirectList< T >

A List with indirect addressing. Like IndirectList but does not store addressing.

Note the const_cast of the list values. This is so we can use it both on const and non-const lists. Alternative would be to have a const_ variant etc.

Source files

Definition at line 76 of file IndirectList.H.

Constructor & Destructor Documentation

◆ UIndirectList() [1/2]

UIndirectList ( const UList< T > &  values,
const labelUList addr 
)
inline

Shallow copy values and addressing.

Definition at line 85 of file IndirectList.H.

◆ UIndirectList() [2/2]

UIndirectList ( const UIndirectList< T > &  list)
inline

Copy construct (shallow copy values and addressing)

Definition at line 91 of file IndirectList.H.

Member Function Documentation

◆ operator=()

void operator= ( const UIndirectList< T > &  rhs)
inline

Deep copy values, Fatal if list sizes are not identical.

Definition at line 103 of file IndirectList.H.

References IndirectListBase< T, labelUList >::copyList().

Here is the call graph for this function:

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