29 template<
class T,
class AccessOp>
32 const UList<T>& lists,
37 auto out = output.
begin();
39 for (
const auto& sub : lists)
41 *out = aop(sub).size();
49 template<
class T,
class AccessOp>
52 const UList<T>& lists,
58 for (
const auto& sub : lists)
60 len += aop(sub).size();
72 for (
const auto& sub : lists)
81 template<
class ListType,
class T>
86 for (
const auto& sub : lists)
94 auto out = output.begin();
96 for (
auto& sub : lists)
98 out = std::move(sub.begin(), sub.end(), out);
107 template<
class AccessType,
class T,
class AccessOp>
116 for (
const auto& sub : lists)
118 len += aop(sub).size();
121 AccessType output(len);
122 auto out = output.begin();
124 for (
const auto& sub : lists)
126 for (
const auto& item : aop(sub))
137 template<
class AccessType,
class T,
class AccessOp,
class OffsetOp>
148 for (
const auto& sub : lists)
150 len += aop(sub).size();
153 AccessType output(len);
154 auto out = output.begin();
155 auto off = offsets.
begin();
158 for (
const auto& sub : lists)
160 for (
const auto& item : aop(sub))
162 *out = oop(item, offset);
ListType concat(List< T > &lists)
Concatenate sub-lists (moving their content) into a single list.
label totalSize(const UList< T > &lists)
The total size of all sub-lists.
AccessType combine(const UList< T > &lists, AccessOp aop=accessOp< T >())
Combines sub-lists into a single list.
iterator begin() noexcept
Return an iterator to begin traversing the UList.
A 1D vector of objects of type <T>, where the size of the vector is known and can be used for subscri...
label sumSizes(const UList< T > &lists, AccessOp aop=accessOp< T >())
The total size of all sub-lists.
labelList subSizes(const UList< T > &lists, AccessOp aop=accessOp< T >())
Return the sizes of the sub-lists.
List< label > labelList
A List of labels.
AccessType combineOffset(const UList< T > &lists, const labelUList &offsets, AccessOp aop, OffsetOp oop=offsetOp< T >())
Like combine but also offsets sublists based on passed sizes.