52#ifndef Foam_IndirectList_H
53#define Foam_IndirectList_H
119 private IndirectListAddressing<labelList>,
158 template<
class UnaryCondition>
162 const UnaryCondition& select,
172 template<
class UnaryPredicate>
176 const UnaryPredicate& pred,
188 const bool sorted =
false
IndirectListAddressing(const labelList &addr)
const Addr & addressing() const noexcept
Const access to the addressing.
Base for lists with indirect addressing, templated on the list contents type and the addressing type....
void copyList(const ListType &rhs)
const Addr & addressing() const noexcept
The addressing used for the list.
IndirectListBase()=delete
List< T > list() const
Return the addressed elements as a List.
const UList< T > & values() const noexcept
The list of values (without addressing).
A List with indirect addressing.
IndirectList(const UList< T > &values, const labelUList &addr)
Copy construct addressing, shallow copy values reference.
IndirectList(IndirectList< T > &&list)
Move construct addressing, shallow copy values reference.
void operator=(const IndirectList< T > &rhs)
Deep copy values, Fatal if list sizes are not identical.
IndirectList(const IndirectList< T > &list)
Copy construct addressing, shallow copy values reference.
IndirectList(const UList< T > &values, Foam::zero)
Zero-sized addressing, shallow copy values reference.
static IndirectList< T > uniq(const UList< T > &values, const bool sorted=false)
Return an IndirectList with duplicate entries filtered out.
static IndirectList< T > subset_if(const UList< T > &values, const UnaryPredicate &pred, const bool invert=false)
Return an IndirectList comprising entries with values that satisfy the predicate.
IndirectList(const UIndirectList< T > &list)
Copy construct addressing, shallow copy values reference.
IndirectList(const UList< T > &values, labelList &&addr)
Move construct addressing, shallow copy values reference.
static IndirectList< T > subset(const UList< T > &values, const UnaryCondition &select, const bool invert=false)
Return an IndirectList comprising entries with positions that satisfy the condition predicate.
A List with indirect addressing. Like IndirectList but does not store addressing.
UIndirectList(const UList< T > &values, const labelUList &addr)
Shallow copy values and addressing.
UIndirectList(const UIndirectList< T > &list)
Copy construct (shallow copy values and addressing).
void operator=(const UIndirectList< T > &rhs)
Deep copy values, Fatal if list sizes are not identical.
A 1D vector of objects of type <T>, where the size of the vector is known and can be used for subscri...
A class representing the concept of 0 (zero) that can be used to avoid manipulating objects known to ...
List< label > labelList
A List of labels.
UIndirectList< label > labelUIndList
UIndirectList of labels.
UIndirectList< bool > boolUIndList
UIndirectList of bools.
void rhs(fvMatrix< typename Expr::value_type > &m, const Expr &expression)
labelList invert(const label len, const labelUList &map)
Create an inverse one-to-one mapping.
UList< label > labelUList
A UList of labels.
void T(FieldField< Field, Type > &f1, const FieldField< Field, Type > &f2)