A list that is sorted upon construction or when explicitly requested with the sort() method. More...


Public Member Functions | |
| constexpr | SortableList () noexcept |
| Default construct. More... | |
| SortableList (const label size) | |
| Construct given size, sort later. More... | |
| SortableList (const label size, const Foam::zero) | |
| Construct zero-initialized with given size, sort later. More... | |
| SortableList (const label size, const T &val) | |
| Construct given size and initial value, sorting later. More... | |
| SortableList (const SortableList< T > &lst) | |
| Copy construct. More... | |
| SortableList (SortableList< T > &&lst) | |
| Move construct. More... | |
| SortableList (const UList< T > &values) | |
| Copy construct from UList, sorting immediately. More... | |
| SortableList (List< T > &&values) | |
| Move construct from List, sorting immediately. More... | |
| SortableList (std::initializer_list< T > values) | |
| Construct from an initializer list, sorting immediately. More... | |
| const labelList & | indices () const noexcept |
| Return the list of sorted indices. Updated every sort. More... | |
| labelList & | indices () noexcept |
| Return non-const access to the sorted indices. Updated every sort. More... | |
| void | clear () |
| Clear the list and the indices. More... | |
| List< T > & | shrink () |
| Clear the indices and return a reference to the underlying List. More... | |
| void | sort () |
| Forward (stable) sort the list (if changed after construction). More... | |
| void | reverseSort () |
| Reverse (stable) sort the list. More... | |
| void | partialSort (label n, label start=0) |
| Forward partial sort the list until the middle point. More... | |
| void | partialReverseSort (label n, label start=0) |
| Reverse partial sort the list until the middle point. More... | |
| void | swap (SortableList< T > &other) |
| Swap content with another SortableList in constant time. More... | |
| void | operator= (const T &val) |
| Assignment of all entries to the given value, removing indices. More... | |
| void | operator= (const UList< T > &lst) |
| Assignment to UList operator, removing indices. Takes linear time. More... | |
| void | operator= (const SortableList< T > &lst) |
| Assignment operator. Takes linear time. More... | |
| void | operator= (List< T > &&lst) |
| Move assignment, removing indices. Takes linear time. More... | |
| void | operator= (SortableList< T > &&lst) |
| Move operator (constant time) More... | |
| void | operator= (std::initializer_list< T > lst) |
| Assignment to an initializer list. More... | |
Public Member Functions inherited from List< T > | |
| constexpr | List () noexcept |
| Default construct. More... | |
| List (const label len) | |
| Construct with given size. More... | |
| List (const label len, const T &val) | |
| Construct with given size and value for all elements. More... | |
| List (const label len, const Foam::zero) | |
| Construct with given size initializing all elements to zero. More... | |
| List (const Foam::one, const T &val) | |
| Construct with length=1, copying the value as the only content. More... | |
| List (const Foam::one, T &&val) | |
| Construct with length=1, moving the value as the only content. More... | |
| List (const Foam::one, const Foam::zero) | |
| Construct with length=1, initializing content to zero. More... | |
| List (const List< T > &a) | |
| Copy construct from list. More... | |
| List (const UList< T > &a) | |
| Copy construct contents from list. More... | |
| List (List< T > &a, bool reuse) | |
| Construct as copy or re-use as specified. More... | |
| List (const UList< T > &list, const labelUList &indices) | |
| Copy construct subset of list. More... | |
| template<unsigned N> | |
| List (const UList< T > &list, const FixedList< label, N > &indices) | |
| Copy construct subset of list. More... | |
| template<unsigned N> | |
| List (const FixedList< T, N > &list) | |
| Construct as copy of FixedList<T, N> More... | |
| List (const PtrList< T > &list) | |
| Construct as copy of PtrList<T> More... | |
| List (const SLList< T > &list) | |
| Construct as copy of SLList<T> More... | |
| template<class Addr > | |
| List (const IndirectListBase< T, Addr > &list) | |
| Construct as copy of IndirectList contents. More... | |
| List (std::initializer_list< T > list) | |
| Construct from an initializer list. More... | |
| List (List< T > &&list) | |
| Move construct from List. More... | |
| template<int SizeMin> | |
| List (DynamicList< T, SizeMin > &&list) | |
| Move construct from DynamicList. More... | |
| List (SLList< T > &&list) | |
| Move construct from SLList. More... | |
| List (Istream &is) | |
| Construct from Istream. More... | |
| autoPtr< List< T > > | clone () const |
| Clone. More... | |
| ~List () | |
| Destructor. More... | |
| void | clear () |
| Clear the list, i.e. set size to zero. More... | |
| void | resize (const label len) |
| Adjust allocated size of list. More... | |
| void | resize (const label len, const T &val) |
| Adjust allocated size of list and set val for new elements. More... | |
| void | resize_nocopy (const label len) |
| Adjust allocated size of list without necessarily. More... | |
| void | setSize (const label n) |
| Alias for resize() More... | |
| void | setSize (const label n, const T &val) |
| Alias for resize() More... | |
| void | transfer (List< T > &list) |
| Transfer the contents of the argument List into this list and annul the argument list. More... | |
| template<int SizeMin> | |
| void | transfer (DynamicList< T, SizeMin > &list) |
| Transfer the contents of the argument List into this list and annul the argument list. More... | |
| T & | newElmt (const label i) |
| Return subscript-checked element of UList and resizing the list if required. More... | |
| template<class... Args> | |
| T & | emplace_back (Args &&... args) |
| Construct an element at the end of the list, return reference to the new list element. More... | |
| void | push_back (const T &val) |
| Append an element at the end of the list. More... | |
| void | push_back (T &&val) |
| Move append an element at the end of the list. More... | |
| void | push_back (const UList< T > &list) |
| Append a List to the end of this list. More... | |
| template<class Addr > | |
| void | push_back (const IndirectListBase< T, Addr > &list) |
| Append IndirectList contents at the end of this list. More... | |
| label | push_uniq (const T &val) |
| Append an element if not already in the list. More... | |
| void | pop_back (label n=1) |
| Reduce size by 1 or more elements. Can be called on an empty list. More... | |
| void | operator= (const UList< T > &a) |
| Assignment to UList operator. Takes linear time. More... | |
| void | operator= (const List< T > &list) |
| Assignment operator. Takes linear time. More... | |
| void | operator= (const SLList< T > &list) |
| Assignment to SLList operator. Takes linear time. More... | |
| template<class Addr > | |
| void | operator= (const IndirectListBase< T, Addr > &list) |
| Assignment from IndirectList. Takes linear time. More... | |
| template<unsigned N> | |
| void | operator= (const FixedList< T, N > &list) |
| Copy assignment from FixedList. More... | |
| void | operator= (std::initializer_list< T > list) |
| Assignment to an initializer list. More... | |
| void | operator= (const T &val) |
| Assignment of all entries to the given value. More... | |
| void | operator= (const Foam::zero) |
| Assignment of all entries to zero. More... | |
| void | operator= (List< T > &&list) |
| Move assignment. Takes constant time. More... | |
| template<int SizeMin> | |
| void | operator= (DynamicList< T, SizeMin > &&list) |
| Move assignment. Takes constant time. More... | |
| void | operator= (SLList< T > &&list) |
| Move assignment. Takes constant time. More... | |
| Istream & | readList (Istream &is) |
| Read List from Istream, discarding contents of existing List. More... | |
| void | shallowCopy (const UList< T > &)=delete |
| No shallowCopy permitted. More... | |
| template<class TypeT = T> | |
| std::enable_if< std::is_same< bool, TypeT >::value, bool >::type | set (const label i, bool val=true) |
| A bitSet::set() method for a list of bool. More... | |
| void | append (const T &val) |
| Append an element at the end of the list. More... | |
| void | append (T &&val) |
| Move append an element at the end of the list. More... | |
| void | append (const UList< T > &list) |
| Append a List to the end of this list. More... | |
| template<class Addr > | |
| void | append (const IndirectListBase< T, Addr > &list) |
| Append IndirectList contents at the end of this list. More... | |
| label | appendUniq (const T &val) |
| Append an element if not already in the list. More... | |
| template<> | |
| Istream & | readList (Istream &is) |
| Specialized list reading for character lists which always uses binary format. More... | |
| template<> | |
| void | resize (const label newLen) |
| template<> | |
| Istream & | readList (Istream &is) |
Public Member Functions inherited from UList< T > | |
| UList (const UList< T > &)=default | |
| Copy construct. More... | |
| constexpr | UList () noexcept |
| Default construct, zero-sized and nullptr. More... | |
| UList (T *__restrict__ v, const label len) noexcept | |
| Construct from components. More... | |
| label | fcIndex (const label i) const noexcept |
| The forward circular index. The next index in the list which returns to the first at the end of the list. More... | |
| label | rcIndex (const label i) const noexcept |
| The reverse circular index. The previous index in the list which returns to the last at the beginning of the list. More... | |
| const T & | fcValue (const label i) const |
| Return forward circular value (ie, next value in the list) More... | |
| T & | fcValue (const label i) |
| Return forward circular value (ie, next value in the list) More... | |
| const T & | rcValue (const label i) const |
| Return reverse circular value (ie, previous value in the list) More... | |
| T & | rcValue (const label i) |
| Return reverse circular value (ie, previous value in the list) More... | |
| const T * | cdata () const noexcept |
| Return pointer to the underlying array serving as data storage. More... | |
| T * | data () noexcept |
| Return pointer to the underlying array serving as data storage. More... | |
| const char * | cdata_bytes () const noexcept |
| Return pointer to the underlying array serving as data storage,. More... | |
| char * | data_bytes () noexcept |
| Return pointer to the underlying array serving as data storage,. More... | |
| T & | front () |
| Access first element of the list, position [0]. More... | |
| const T & | front () const |
| Access first element of the list. More... | |
| T & | back () |
| Access last element of the list, position [size()-1]. More... | |
| const T & | back () const |
| Access last element of the list, position [size()-1]. More... | |
| std::streamsize | size_bytes () const noexcept |
| Number of contiguous bytes for the List data. More... | |
| std::streamsize | byteSize () const |
| Number of contiguous bytes for the List data, runtime FatalError if type is not contiguous. More... | |
| void | checkStart (const label start) const |
| Check start is within valid range [0,size) More... | |
| void | checkSize (const label size) const |
| Check size is within valid range [0,size]. More... | |
| void | checkRange (const label start, const label len) const |
| Check that start and length define a valid range. More... | |
| void | checkIndex (const label i) const |
| Check index is within valid range [0,size) More... | |
| bool | uniform () const |
| True if all entries have identical values, and list is non-empty. 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 | contains (const T &val, label pos=0) const |
| Is the value contained in the list? More... | |
| void | moveFirst (const label i) |
| Move element to the first position. More... | |
| void | moveLast (const label i) |
| Move element to the last position. More... | |
| void | swapFirst (const label i) |
| Swap element with the first element. Fatal on an empty list. More... | |
| void | swapLast (const label i) |
| Swap element with the last element. Fatal on an empty list. More... | |
| void | shallowCopy (const UList< T > &list) |
| Copy the pointer and size held by the given UList. More... | |
| void | deepCopy (const UList< T > &list) |
| Copy elements of the given UList. Sizes must match! More... | |
| template<class Addr > | |
| void | deepCopy (const IndirectListBase< T, Addr > &list) |
| Copy elements of the given indirect list. Sizes must match! More... | |
| SubList< T > | slice (const label pos, label len=-1) |
| Return SubList slice (non-const access) - no range checking. More... | |
| const SubList< T > | slice (const label pos, label len=-1) const |
| Return SubList slice (const access) - no range checking. More... | |
| SubList< T > | slice (const labelRange &range) |
| Return SubList slice (non-const access) - with range checking. More... | |
| const SubList< T > | slice (const labelRange &range) const |
| Return SubList slice (const access) - with range checking. More... | |
| T & | operator[] (const label i) |
| Return element of UList. More... | |
| const T & | operator[] (const label i) const |
| Return element of constant UList. More... | |
| operator const Foam::List< T > & () const | |
| Allow cast to a const List<T>&. More... | |
| void | operator= (const T &val) |
| Assignment of all entries to the given value. More... | |
| void | operator= (const Foam::zero) |
| Assignment of all entries to zero. More... | |
| iterator | begin () noexcept |
| Return an iterator to begin traversing the UList. More... | |
| iterator | end () noexcept |
| Return an iterator to end traversing the UList. More... | |
| iterator | begin (const label i) noexcept |
| Return iterator at offset i from begin, clamped to [0,size] range. More... | |
| const_iterator | cbegin () const noexcept |
| Return const_iterator to begin traversing the constant UList. More... | |
| const_iterator | cend () const noexcept |
| Return const_iterator to end traversing the constant UList. More... | |
| const_iterator | begin () const noexcept |
| Return const_iterator to begin traversing the constant UList. More... | |
| const_iterator | end () const noexcept |
| Return const_iterator to end traversing the constant UList. More... | |
| const_iterator | cbegin (const label i) const noexcept |
| Return const_iterator at offset i from begin, clamped to [0,size] range. More... | |
| const_iterator | begin (const label i) const noexcept |
| Return const_iterator at offset i from begin, clamped to [0,size] range. More... | |
| reverse_iterator | rbegin () |
| Return reverse_iterator to begin reverse traversing the UList. More... | |
| reverse_iterator | rend () |
| Return reverse_iterator to end reverse traversing the UList. More... | |
| const_reverse_iterator | crbegin () const |
| Return const_reverse_iterator to begin reverse traversing the UList. More... | |
| const_reverse_iterator | crend () const |
| Return const_reverse_iterator to end reverse traversing the UList. More... | |
| const_reverse_iterator | rbegin () const |
| Return const_reverse_iterator to begin reverse traversing the UList. More... | |
| const_reverse_iterator | rend () const |
| Return const_reverse_iterator to end reverse traversing the UList. More... | |
| bool | empty () const noexcept |
| True if List is empty (ie, size() is zero) More... | |
| label | size () const noexcept |
| The number of elements in the List. More... | |
| void | swap (UList< T > &list) |
| Swap content with another UList of the same type in constant time. More... | |
| bool | operator== (const UList< T > &a) const |
| Equality operation on ULists of the same type. More... | |
| bool | operator!= (const UList< T > &a) const |
| The opposite of the equality operation. Takes linear time. More... | |
| bool | operator< (const UList< T > &list) const |
| Compare two ULists lexicographically. Takes linear time. More... | |
| bool | operator> (const UList< T > &a) const |
| Compare two ULists lexicographically. Takes linear time. More... | |
| bool | operator<= (const UList< T > &a) const |
| Return true if !(a > b). Takes linear time. More... | |
| bool | operator>= (const UList< T > &a) const |
| Return true if !(a < b). Takes linear time. More... | |
| Istream & | readList (Istream &is) |
| Read List contents from Istream. More... | |
| void | writeEntry (const word &keyword, Ostream &os) const |
| Write the List as a dictionary entry with keyword. More... | |
| Ostream & | writeList (Ostream &os, const label shortLen=0) const |
| Write List, with line-breaks in ASCII when length exceeds shortLen. More... | |
| template<class TypeT = T> | |
| std::enable_if< std::is_same< bool, TypeT >::value, bool >::type | test (const label i) const |
Test bool value at specified position, always false for out-of-range access. More... | |
| template<class TypeT = T> | |
| std::enable_if< std::is_same< bool, TypeT >::value, bool >::type | get (const label i) const |
Return bool value at specified position, always false for out-of-range access. More... | |
| template<class TypeT = T> | |
| std::enable_if< std::is_same< bool, TypeT >::value, bool >::type | unset (const label i) |
Unset the bool entry at specified position, always false for out-of-range access. More... | |
| T & | first () |
| Access first element of the list, position [0]. More... | |
| const T & | first () const |
| Access first element of the list. More... | |
| T & | last () |
| Access last element of the list, position [size()-1]. More... | |
| const T & | last () const |
| Access last element of the list, position [size()-1]. More... | |
| bool | found (const T &val, label pos=0) const |
| Same as contains() More... | |
| template<> | |
| Istream & | readList (Istream &is) |
| Specialized list reading for character lists which always uses binary format. More... | |
| template<> | |
| Ostream & | writeList (Ostream &os, const label) const |
| Specialized writeList for character lists which always uses binary format. More... | |
| template<> | |
| const bool & | operator[] (const label i) const |
| template<> | |
| UPstream::commsStruct & | operator[] (const label procID) |
| template<> | |
| const UPstream::commsStruct & | operator[] (const label procID) const |
| template<> | |
| Foam::UPstream::commsStruct & | operator[] (const label procID) |
| template<> | |
| const Foam::UPstream::commsStruct & | operator[] (const label procID) const |
| template<> | |
| Ostream & | writeList (Ostream &os, const label) const |
| template<> | |
| Istream & | readList (Istream &is) |
Additional Inherited Members | |
Public Types inherited from List< T > | |
| typedef SubList< T > | subList |
| Declare type of subList. More... | |
Public Types inherited from UList< T > | |
| typedef T | value_type |
| The value type the list contains. More... | |
| typedef T * | pointer |
| The pointer type for non-const access to value_type items. More... | |
| typedef const T * | const_pointer |
| The pointer type for const access to value_type items. More... | |
| typedef T & | reference |
| The type used for storing into value_type objects. More... | |
| typedef const T & | const_reference |
| The type used for reading from constant value_type objects. More... | |
| typedef T * | iterator |
| Random access iterator for traversing a UList. More... | |
| typedef const T * | const_iterator |
| Random access iterator for traversing a UList. 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 std::reverse_iterator< iterator > | reverse_iterator |
| Reverse iterator (non-const access) More... | |
| typedef std::reverse_iterator< const_iterator > | const_reverse_iterator |
| Reverse iterator (const access) More... | |
Static Public Member Functions inherited from List< T > | |
| static const List< T > & | null () |
| Return a null List. More... | |
Static Public Member Functions inherited from UList< T > | |
| static const UList< T > & | null () |
| Return a UList reference to a nullObject. More... | |
| static constexpr label | max_size () noexcept |
| The size of the largest possible UList. More... | |
Protected Member Functions inherited from UList< T > | |
| void | setAddressableSize (const label n) noexcept |
| Set addressed size to be inconsistent with allocated storage. More... | |
| void | size (const label n) |
| Older name for setAddressableSize. More... | |
| void | writeEntry (Ostream &os) const |
| Write the UList with its compound type. More... | |
| labelRange | validateRange (const labelRange &requestedRange) const |
| Return a validated (start,size) subset range, which means that it always addresses a valid section of the list. More... | |
| UList< T > & | operator= (const UList< T > &)=delete |
| No copy assignment (default: shallow copy) More... | |
| template<> | |
| void | writeEntry (Ostream &os) const |
| Specialized writeEntry for character lists which always uses binary format. More... | |
| template<> | |
| void | writeEntry (Ostream &os) const |
A list that is sorted upon construction or when explicitly requested with the sort() method.
Uses the std::stable_sort() algorithm.
Definition at line 56 of file SortableList.H.
|
inlinenoexcept |
Default construct.
Definition at line 27 of file SortableList.C.
|
inlineexplicit |
Construct given size, sort later.
The indices remain empty until the list is sorted
Definition at line 35 of file SortableList.C.
|
inline |
Construct zero-initialized with given size, sort later.
The indices remain empty until the list is sorted
Definition at line 42 of file SortableList.C.
|
inline |
Construct given size and initial value, sorting later.
The indices remain empty until the list is sorted
Definition at line 49 of file SortableList.C.
|
inline |
Copy construct.
Definition at line 56 of file SortableList.C.
|
inline |
Move construct.
Definition at line 64 of file SortableList.C.
|
inlineexplicit |
Copy construct from UList, sorting immediately.
Definition at line 72 of file SortableList.C.
References SortableList< T >::sort().

|
inline |
Move construct from List, sorting immediately.
Definition at line 81 of file SortableList.C.
References SortableList< T >::sort().

|
inline |
Construct from an initializer list, sorting immediately.
Definition at line 90 of file SortableList.C.
References SortableList< T >::sort().

|
inlinenoexcept |
Return the list of sorted indices. Updated every sort.
Definition at line 129 of file SortableList.H.
Referenced by primitiveMesh::checkPointNearness(), searchableBox::findNearestOnEdge(), triangleFuncs::intersect(), Foam::matchPoints(), SortableList< T >::operator=(), faceCollapser::setRefinement(), ParSortableList< Type >::sort(), and PatchTools::sortedEdgeFaces().

|
inlinenoexcept |
Return non-const access to the sorted indices. Updated every sort.
Definition at line 137 of file SortableList.H.
|
inline |
Clear the list and the indices.
Definition at line 101 of file SortableList.C.
References List< T >::clear().

|
inline |
Clear the indices and return a reference to the underlying List.
Definition at line 109 of file SortableList.C.
| void sort | ( | ) |
Forward (stable) sort the list (if changed after construction).
Resizes the indices as required
Definition at line 117 of file SortableList.C.
References Foam::sortedOrder(), 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.
Resizes the indices as required
Definition at line 127 of file SortableList.C.
References Foam::sortedOrder(), and List< T >::transfer().

| void partialSort | ( | label | n, |
| label | start = 0 |
||
| ) |
Forward partial sort the list until the middle point.
Definition at line 137 of file SortableList.C.
References Foam::ListOps::identity(), Foam::less(), n, and List< T >::transfer().

| void partialReverseSort | ( | label | n, |
| label | start = 0 |
||
| ) |
Reverse partial sort the list until the middle point.
Definition at line 157 of file SortableList.C.
References Foam::ListOps::identity(), n, and List< T >::transfer().

|
inline |
Swap content with another SortableList in constant time.
Definition at line 177 of file SortableList.C.
References UList< T >::swap().

|
inline |
Assignment of all entries to the given value, removing indices.
Definition at line 192 of file SortableList.C.
References UList< T >::operator=().

Assignment to UList operator, removing indices. Takes linear time.
Definition at line 200 of file SortableList.C.
References List< T >::operator=().

|
inline |
Assignment operator. Takes linear time.
Definition at line 208 of file SortableList.C.
References SortableList< T >::indices(), and List< T >::operator=().

Move assignment, removing indices. Takes linear time.
Definition at line 221 of file SortableList.C.
References List< T >::transfer().

|
inline |
Move operator (constant time)
Definition at line 229 of file SortableList.C.
References clear().

|
inline |
Assignment to an initializer list.
Definition at line 242 of file SortableList.C.
References List< T >::operator=(), and Foam::sort().

Copyright © 2011-2018 OpenFOAM | OPENFOAM® is a registered trademark of OpenCFD Ltd.