IndirectSubList< T > Class Template Reference

Indirect access to a sub-section of a list. More...

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

Public Member Functions

 IndirectSubList (const UList< T > &values)
 Construct from UList, the entire size. More...
 
 IndirectSubList (const UList< T > &values, const labelRange &addr)
 Construct from values list and range. More...
 
const Addr & addressing () const noexcept
 The list addressing. More...
 
Addr & addressing () noexcept
 The list addressing. More...
 
- Public Member Functions inherited from IndirectListBase< T, labelRange >
 IndirectListBase ()=delete
 No default construct. More...
 
 IndirectListBase (const UList< T > &values, const labelRange &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 labelRangeaddressing () 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, labelRange > &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, labelRange >
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 labelRange addressing_type
 The addressing type (non-stl definition) More...
 
- Protected Member Functions inherited from IndirectListBase< T, labelRange >
void copyList (const ListType &rhs)
 Deep copy values from the list. More...
 

Detailed Description

template<class T>
class Foam::IndirectSubList< T >

Indirect access to a sub-section of a list.

In many cases, using a Foam::SubList provides a simpler and more efficient means of accessing a sub-list. There are, however, some advantages of a IndirectSubList:

  • allows adjustment of its addressing range after construct
  • can recover the original, underlying list at any time
See also
Foam::SubList
Source files

Definition at line 61 of file IndirectSubList.H.

Constructor & Destructor Documentation

◆ IndirectSubList() [1/2]

IndirectSubList ( const UList< T > &  values)
inlineexplicit

Construct from UList, the entire size.

Definition at line 71 of file IndirectSubList.H.

◆ IndirectSubList() [2/2]

IndirectSubList ( const UList< T > &  values,
const labelRange addr 
)
inline

Construct from values list and range.

Definition at line 82 of file IndirectSubList.H.

Member Function Documentation

◆ addressing() [1/2]

const Addr & addressing ( ) const
inlinenoexcept

The list addressing.

Definition at line 78 of file IndirectListAddressing.H.

◆ addressing() [2/2]

Addr & addressing ( )
inlinenoexcept

The list addressing.

Definition at line 84 of file IndirectListAddressing.H.


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