A list that is sorted upon construction or when explicitly requested with the sort() method. More...
#include <OpenFOAM/SortableList.H>
A list that is sorted upon construction or when explicitly requested with the sort() method.
Uses the Foam::stableSort() algorithm.
Definition at line 53 of file SortableList.H.
Public Member Functions | |
SortableList () | |
Null constructor, sort later (eg, after assignment or transfer) | |
SortableList (const UList< T > &) | |
Construct from UList, sorting immediately. | |
SortableList (const Xfer< List< T > > &) | |
Construct from transferred List, sorting immediately. | |
SortableList (const label size) | |
Construct given size. Sort later on. | |
SortableList (const label size, const T &) | |
Construct given size and initial value. Sort later on. | |
SortableList (const SortableList< T > &) | |
Construct as copy. | |
const labelList & | indices () const |
Return the list of sorted indices. Updated every sort. | |
labelList & | indices () |
Return non-const access to the sorted indices. Updated every sort. | |
void | clear () |
Clear the list and the indices. | |
List< T > & | shrink () |
Clear the indices and return a reference to the underlying List. | |
void | sort () |
(stable) sort the list (if changed after construction time) | |
void | reverseSort () |
Reverse (stable) sort the list. | |
Xfer< List< T > > | xfer () |
Transfer contents to the Xfer container as a plain List. | |
void | operator= (const T &) |
Assignment of all entries to the given value. | |
void | operator= (const UList< T > &) |
Assignment from UList operator. Takes linear time. | |
void | operator= (const SortableList< T > &) |
Assignment operator. Takes linear time. | |
![]() | |
List () | |
Null constructor. | |
List (const label) | |
Construct with given size. | |
List (const label, const T &) | |
Construct with given size and value for all elements. | |
List (const List< T > &) | |
Copy constructor. | |
List (const Xfer< List< T > > &) | |
Construct by transferring the parameter contents. | |
List (List< T > &, bool reUse) | |
Construct as copy or re-use as specified. | |
List (const UList< T > &, const unallocLabelList &mapAddressing) | |
Construct as subset. | |
template<class InputIterator > | |
List (InputIterator first, InputIterator last) | |
Construct given start and end iterators. | |
template<unsigned Size> | |
List (const FixedList< T, Size > &) | |
Construct as copy of FixedList<T, Size> | |
List (const PtrList< T > &) | |
Construct as copy of PtrList<T> | |
List (const SLList< T > &) | |
Construct as copy of SLList<T> | |
List (const IndirectList< T > &) | |
Construct as copy of IndirectList<T> | |
List (const UIndirectList< T > &) | |
Construct as copy of UIndirectList<T> | |
List (const BiIndirectList< T > &) | |
Construct as copy of BiIndirectList<T> | |
List (Istream &) | |
Construct from Istream. | |
autoPtr< List< T > > | clone () const |
Clone. | |
~List () | |
label | size () const |
Return the number of elements in the UList. | |
void | resize (const label) |
Reset size of List. | |
void | resize (const label, const T &) |
Reset size of List and value for new elements. | |
void | setSize (const label) |
Reset size of List. | |
void | setSize (const label, const T &) |
Reset size of List and value for new elements. | |
void | append (const UList< T > &) |
Append a List at the end of this list. | |
void | append (const UIndirectList< T > &) |
Append a UIndirectList at the end of this list. | |
void | transfer (List< T > &) |
Transfer the contents of the argument List into this list. | |
template<unsigned SizeInc, unsigned SizeMult, unsigned SizeDiv> | |
void | transfer (DynamicList< T, SizeInc, SizeMult, SizeDiv > &) |
Transfer the contents of the argument List into this list. | |
void | transfer (SortableList< T > &) |
Transfer the contents of the argument List into this list. | |
T & | newElmt (const label) |
Return subscript-checked element of UList. | |
void | operator= (const List< T > &) |
Assignment operator. Takes linear time. | |
void | operator= (const SLList< T > &) |
Assignment from SLList operator. Takes linear time. | |
void | operator= (const IndirectList< T > &) |
Assignment from IndirectList operator. Takes linear time. | |
void | operator= (const UIndirectList< T > &) |
Assignment from UIndirectList operator. Takes linear time. | |
void | operator= (const BiIndirectList< T > &) |
Assignment from BiIndirectList operator. Takes linear time. | |
![]() | |
UList () | |
Null constructor. | |
UList (T *__restrict__ v, label size) | |
Construct from components. | |
label | fcIndex (const label i) const |
Return the forward circular index, i.e. the next index. | |
label | rcIndex (const label i) const |
Return the reverse circular index, i.e. the previous index. | |
label | byteSize () const |
Return the binary size in number of characters of the UList. | |
const T * | cdata () const |
Return a const pointer to the first data element,. | |
T * | data () |
Return a pointer to the first data element,. | |
void | checkStart (const label start) const |
Check start is within valid range (0 ... size-1). | |
void | checkSize (const label size) const |
Check size is within valid range (0 ... size). | |
void | checkIndex (const label i) const |
Check index i is within valid range (0 ... size-1). | |
void | writeEntry (Ostream &) const |
Write the UList as a dictionary entry. | |
void | writeEntry (const word &keyword, Ostream &) const |
Write the UList as a dictionary entry with keyword. | |
void | assign (const UList< T > &) |
Assign elements to those from UList. | |
T & | operator[] (const label) |
Return element of UList. | |
const T & | operator[] (const label) const |
Return element of constant UList. | |
operator const Foam::List< T > & () const | |
Allow cast to a const List<T>&. | |
iterator | begin () |
Return an iterator to begin traversing the UList. | |
iterator | end () |
Return an iterator to end traversing the UList. | |
const_iterator | cbegin () const |
Return const_iterator to begin traversing the constant UList. | |
const_iterator | cend () const |
Return const_iterator to end traversing the constant UList. | |
const_iterator | begin () const |
Return const_iterator to begin traversing the constant UList. | |
const_iterator | end () const |
Return const_iterator to end traversing the constant UList. | |
reverse_iterator | rbegin () |
Return reverse_iterator to begin reverse traversing the UList. | |
reverse_iterator | rend () |
Return reverse_iterator to end reverse traversing the UList. | |
const_reverse_iterator | crbegin () const |
Return const_reverse_iterator to begin reverse traversing the UList. | |
const_reverse_iterator | crend () const |
Return const_reverse_iterator to end reverse traversing the UList. | |
const_reverse_iterator | rbegin () const |
Return const_reverse_iterator to begin reverse traversing the UList. | |
const_reverse_iterator | rend () const |
Return const_reverse_iterator to end reverse traversing the UList. | |
label | max_size () const |
Return size of the largest possible UList. | |
bool | empty () const |
Return true if the UList is empty (ie, size() is zero). | |
void | swap (UList< T > &) |
Swap two ULists of the same type in constant time. | |
bool | operator== (const UList< T > &) const |
Equality operation on ULists of the same type. | |
bool | operator!= (const UList< T > &) const |
The opposite of the equality operation. Takes linear time. | |
bool | operator< (const UList< T > &) const |
Compare two ULists lexicographically. Takes linear time. | |
bool | operator> (const UList< T > &) const |
Compare two ULists lexicographically. Takes linear time. | |
bool | operator<= (const UList< T > &) const |
Return true if !(a > b). Takes linear time. | |
bool | operator>= (const UList< T > &) const |
Return true if !(a < b). Takes linear time. | |
template<> | |
const bool & | operator[] (const label i) const |
Additional Inherited Members | |
![]() | |
typedef SubList< T > | subList |
Declare type of subList. | |
![]() | |
typedef T | value_type |
Type of values the UList contains. | |
typedef T & | reference |
Type that can be used for storing into. | |
typedef const T & | const_reference |
Type that can be used for storing into. | |
typedef label | difference_type |
The type that can represent the difference between any two. | |
typedef label | size_type |
The type that can represent the size of a UList. | |
typedef T * | iterator |
Random access iterator for traversing UList. | |
typedef const T * | const_iterator |
Random access iterator for traversing UList. | |
typedef T * | reverse_iterator |
Reverse iterator for reverse traversal of UList. | |
typedef const T * | const_reverse_iterator |
Reverse iterator for reverse traversal of constant UList. | |
![]() | |
static const List< T > & | null () |
Return a null List. | |
![]() | |
void | size (const label) |
Override size to be inconsistent with allocated storage. |
SortableList | ( | ) |
Null constructor, sort later (eg, after assignment or transfer)
Definition at line 50 of file SortableList.C.
|
explicit |
Construct from UList, sorting immediately.
Definition at line 55 of file SortableList.C.
References SortableList< T >::sort().
|
explicit |
Construct from transferred List, sorting immediately.
Definition at line 64 of file SortableList.C.
References SortableList< T >::sort().
|
explicit |
Construct given size. Sort later on.
The indices remain empty until the list is sorted
Definition at line 73 of file SortableList.C.
SortableList | ( | const label | size, |
const T & | val | ||
) |
Construct given size and initial value. Sort later on.
The indices remain empty until the list is sorted
Definition at line 80 of file SortableList.C.
SortableList | ( | const SortableList< T > & | lst | ) |
Construct as copy.
Definition at line 87 of file SortableList.C.
|
inline |
Return the list of sorted indices. Updated every sort.
Definition at line 93 of file SortableList.H.
Referenced by primitiveMesh::checkPointNearness(), searchableBox::findNearestOnEdge(), triangleFuncs::intersect(), Foam::matchPoints(), Foam::mergePoints(), SortableList< T >::operator=(), faceCollapser::setRefinement(), ParSortableList< Type >::sort(), and PatchTools::sortedEdgeFaces().
|
inline |
Return non-const access to the sorted indices. Updated every sort.
Definition at line 99 of file SortableList.H.
void clear | ( | ) |
Clear the list and the indices.
Reimplemented from List< T >.
Definition at line 98 of file SortableList.C.
References List< T >::clear().
Referenced by SortableList< T >::shrink().
Foam::List< T > & shrink | ( | ) |
Clear the indices and return a reference to the underlying List.
Definition at line 106 of file SortableList.C.
References SortableList< T >::clear().
Referenced by List< T >::transfer().
void sort | ( | ) |
(stable) sort the list (if changed after construction time)
also resizes the indices as required
Definition at line 114 of file SortableList.C.
References forAll, and List< T >::transfer().
Referenced by searchableBox::findNearestOnEdge(), triangleFuncs::intersect(), faceCollapser::setRefinement(), SortableList< T >::SortableList(), and PatchTools::sortedEdgeFaces().
void reverseSort | ( | ) |
Reverse (stable) sort the list.
Definition at line 129 of file SortableList.C.
References forAll, and List< T >::transfer().
|
inline |
Transfer contents to the Xfer container as a plain List.
Reimplemented from List< T >.
Definition at line 145 of file SortableList.C.
Assignment of all entries to the given value.
Reimplemented from List< T >.
Definition at line 154 of file SortableList.C.
References UList< T >::operator=().
Assignment from UList operator. Takes linear time.
Reimplemented from List< T >.
Definition at line 161 of file SortableList.C.
References List< T >::operator=().
|
inline |
Assignment operator. Takes linear time.
Definition at line 169 of file SortableList.C.
References SortableList< T >::indices(), and List< T >::operator=().