Pair< T > Class Template Reference

An ordered pair of two objects of type <T> with first() and second() elements. More...

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

Classes

struct  symmHasher
 Symmetric hashing functor for Pair, hashes lower value first. More...
 

Public Member Functions

 Pair ()=default
 Default construct. More...
 
 Pair (const T &f, const T &s)
 Copy construct from components. More...
 
 Pair (T &&f, T &&s)
 Move construct from components. More...
 
 Pair (const std::pair< T, T > &vals)
 Copy construct from std::pair. More...
 
 Pair (std::pair< T, T > &&vals)
 Move construct from std::pair. More...
 
 Pair (const FixedList< T, 2 > &list)
 Copy construct FixedList of two items. More...
 
 Pair (const T &f, const T &s, const bool doSort)
 Copy construct, optionally sorted with first less-than second. More...
 
 Pair (const FixedList< T, 2 > &list, const bool doSort)
 Copy construct, optionally sorted with first less-than second. More...
 
 Pair (Istream &is)
 Construct from Istream. More...
 
const Tsecond () const noexcept
 Return second element, which is also the last element. More...
 
Tsecond () noexcept
 Return second element, which is also the last element. More...
 
const Tother (const T &a) const
 Return other element. More...
 
bool sorted () const
 True if first() is less-than second() More...
 
void flip ()
 Flip the Pair in-place. More...
 
void sort ()
 Sort so that first() is less-than second() More...
 
- Public Member Functions inherited from FixedList< T, 2 >
void writeEntry (const word &keyword, Ostream &os) const
 Write the list as a dictionary entry with keyword. More...
 
 FixedList ()=default
 Default construct. More...
 
 FixedList (const T &val)
 Construct and initialize all entries to given value. More...
 
 FixedList (const Foam::zero)
 Construct and initialize all entries to zero. More...
 
 FixedList (const T list[N])
 Copy construct from C-array (deprecated) More...
 
 FixedList (const FixedList< T, N > &list)
 Copy construct. More...
 
 FixedList (FixedList< T, N > &&list)
 
 FixedList (std::initializer_list< T > list)
 Construct from an initializer list. Runtime size check. More...
 
 FixedList (const UList< T > &list)
 Construct from UList. Runtime size check. More...
 
 FixedList (const FixedList< T, AnyNum > &list, const FixedList< label, N > &indices)
 Copy construct from a subset of the input. No size check. More...
 
 FixedList (const UList< T > &list, const FixedList< label, N > &indices)
 Copy construct from a subset of the input. No size check. More...
 
 FixedList (const SLList< T > &list)
 Construct from SLList. Runtime size check. More...
 
 FixedList (Istream &is)
 Construct from Istream. More...
 
autoPtr< FixedList< T, N > > clone () const
 Clone. More...
 
const Tcdata () const noexcept
 Return pointer to the underlying array serving as data storage. More...
 
Tdata () 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...
 
Tfirst () noexcept
 The first element of the list, position [0]. More...
 
const Tfirst () const noexcept
 The first element of the list, position [0]. More...
 
Tlast () noexcept
 The last element of the list, position [N-1]. More...
 
const Tlast () const noexcept
 The last element of the list, position [N-1]. More...
 
label fcIndex (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...
 
label rcIndex (const label i) const
 
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...
 
void checkStart (const label start) const
 Check start is within valid range [0,size) More...
 
void checkSize (const label size) const
 Check size is identical to template parameter N. More...
 
void checkIndex (const label i) const
 Check index is within valid range [0,N) 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 found (const T &val, label pos=0) const
 True if the value if found in the list. More...
 
void resize (const label n)
 Dummy function, to make FixedList consistent with List. More...
 
void resize_nocopy (const label n)
 Dummy function, to make FixedList consistent with List. More...
 
void setSize (const label n)
 Dummy function, to make FixedList consistent with List. More...
 
void fill (const T &val)
 Assign all entries to the given value. More...
 
void fill (const Foam::zero)
 Assign all entries to zero. 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. More...
 
void swapLast (const label i)
 Swap element with the last element. More...
 
void transfer (FixedList< T, N > &list)
 
Toperator[] (const label i)
 Return element of FixedList. More...
 
const Toperator[] (const label i) const
 Return element of constant FixedList. More...
 
void operator= (const T list[N])
 Assignment to array operator. Takes linear time. More...
 
void operator= (const UList< T > &list)
 Assignment to UList operator. Takes linear time. More...
 
void operator= (const SLList< T > &list)
 Assignment to SLList operator. Takes linear time. More...
 
void operator= (std::initializer_list< T > list)
 Assignment to an initializer list. Takes linear time. More...
 
void operator= (const T &val)
 Assign all entries to the given value. fill() More...
 
void operator= (const Foam::zero)
 Assign all entries to zero. fill() More...
 
void operator= (const FixedList< T, N > &list)
 Copy assignment. More...
 
void operator= (FixedList< T, N > &&list)
 Move assignment. More...
 
iterator begin () noexcept
 Return an iterator to begin traversing the FixedList. More...
 
const_iterator begin () const noexcept
 Return const_iterator to begin traversing the constant FixedList. More...
 
iterator end () noexcept
 Return an iterator to end traversing the FixedList. More...
 
const_iterator end () const noexcept
 Return const_iterator to end traversing the constant FixedList. More...
 
const_iterator cbegin () const noexcept
 Return const_iterator to begin traversing the constant FixedList. More...
 
const_iterator cend () const noexcept
 Return const_iterator to end traversing the constant FixedList. More...
 
reverse_iterator rbegin ()
 Return reverse_iterator to begin reverse traversing the FixedList. More...
 
const_reverse_iterator rbegin () const
 Return const_reverse_iterator to begin reverse traversing FixedList. More...
 
reverse_iterator rend ()
 Return reverse_iterator to end reverse traversing the FixedList. More...
 
const_reverse_iterator rend () const
 Return const_reverse_iterator to end reverse traversing FixedList. More...
 
const_reverse_iterator crbegin () const
 Return const_reverse_iterator to begin reverse traversing FixedList. More...
 
const_reverse_iterator crend () const
 Return const_reverse_iterator to end reverse traversing FixedList. More...
 
void swap (FixedList< T, N > &other)
 Swap lists by swapping the content of the individual list elements. More...
 
bool operator== (const FixedList< T, N > &list) const
 Equality operation on FixedLists of the same type. More...
 
bool operator!= (const FixedList< T, N > &list) const
 The opposite of the equality operation. Takes linear time. More...
 
bool operator< (const FixedList< T, N > &list) const
 Compare two FixedLists lexicographically. Takes linear time. More...
 
bool operator> (const FixedList< T, N > &list) const
 Compare two FixedLists lexicographically. Takes linear time. More...
 
bool operator<= (const FixedList< T, N > &list) const
 Return true if !(a > b). Takes linear time. More...
 
bool operator>= (const FixedList< T, N > &list) const
 Return true if !(a < b). Takes linear time. More...
 
IstreamreadList (Istream &is)
 Read from Istream, discarding contents of existing List. More...
 
OstreamwriteList (Ostream &os, const label shortLen=0) const
 Write List, with line-breaks in ASCII when length exceeds shortLen. More...
 

Static Public Member Functions

static int compare (const Pair< T > &a, const Pair< T > &b)
 Compare Pairs. More...
 
- Static Public Member Functions inherited from FixedList< T, 2 >
static const FixedList< T, N > & null ()
 Return a null FixedList. More...
 
static std::streamsize size_bytes () noexcept
 Number of contiguous bytes for the list data,. More...
 
static std::streamsize byteSize ()
 
static constexpr bool empty () noexcept
 Always false since zero-sized FixedList is compile-time disabled. More...
 
static constexpr label size () noexcept
 Return the number of elements in the FixedList. More...
 
static constexpr unsigned max_size () noexcept
 The dimensioned size (template parameter N) of the FixedList. More...
 

Additional Inherited Members

- Public Types inherited from FixedList< T, 2 >
typedef T value_type
 The value type the FixedList 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 Titerator
 Random access iterator for traversing FixedList. More...
 
typedef const Tconst_iterator
 Random access iterator for traversing FixedList. More...
 
typedef label size_type
 The type to represent the size of a FixedList. More...
 
typedef label difference_type
 The difference between iterator objects. More...
 
typedef std::reverse_iterator< iteratorreverse_iterator
 Reverse iterator (non-const access) More...
 
typedef std::reverse_iterator< const_iteratorconst_reverse_iterator
 Reverse iterator (const access) More...
 
- Protected Member Functions inherited from FixedList< T, 2 >
void writeEntry (Ostream &os) const
 Write the FixedList with its compound type. More...
 

Detailed Description

template<class T>
class Foam::Pair< T >

An ordered pair of two objects of type <T> with first() and second() elements.

Source files
See also
Foam::Tuple2 for storing two objects of dissimilar types.

Definition at line 66 of file Pair.H.

Constructor & Destructor Documentation

◆ Pair() [1/9]

Pair ( )
default

Default construct.

◆ Pair() [2/9]

Pair ( const T f,
const T s 
)
inline

Copy construct from components.

Definition at line 49 of file PairI.H.

References f(), and s().

Here is the call graph for this function:

◆ Pair() [3/9]

Pair ( T &&  f,
T &&  s 
)
inline

Move construct from components.

Definition at line 57 of file PairI.H.

References f(), and s().

Here is the call graph for this function:

◆ Pair() [4/9]

Pair ( const std::pair< T, T > &  vals)
inline

Copy construct from std::pair.

Definition at line 65 of file PairI.H.

◆ Pair() [5/9]

Pair ( std::pair< T, T > &&  vals)
inline

Move construct from std::pair.

Definition at line 73 of file PairI.H.

◆ Pair() [6/9]

Pair ( const FixedList< T, 2 > &  list)
inline

Copy construct FixedList of two items.

Definition at line 81 of file PairI.H.

◆ Pair() [7/9]

Pair ( const T f,
const T s,
const bool  doSort 
)
inline

Copy construct, optionally sorted with first less-than second.

Definition at line 88 of file PairI.H.

◆ Pair() [8/9]

Pair ( const FixedList< T, 2 > &  list,
const bool  doSort 
)
inline

Copy construct, optionally sorted with first less-than second.

Definition at line 104 of file PairI.H.

◆ Pair() [9/9]

Pair ( Istream is)
inlineexplicit

Construct from Istream.

Definition at line 111 of file PairI.H.

Member Function Documentation

◆ second() [1/2]

◆ second() [2/2]

T & second
inlinenoexcept

Return second element, which is also the last element.

Definition at line 127 of file PairI.H.

◆ other()

const T & other ( const T a) const
inline

Return other element.

Definition at line 134 of file PairI.H.

References Foam::abort(), Foam::FatalError, and FatalErrorInFunction.

Here is the call graph for this function:

◆ sorted()

bool sorted
inline

True if first() is less-than second()

Definition at line 165 of file PairI.H.

◆ flip()

void flip
inline

Flip the Pair in-place.

Definition at line 158 of file PairI.H.

References Foam::Swap().

Referenced by patchEdgeFaceRegions::updateEdge(), and patchEdgeFaceRegions::updateFace().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ sort()

void sort
inline

Sort so that first() is less-than second()

Definition at line 172 of file PairI.H.

◆ compare()

int compare ( const Pair< T > &  a,
const Pair< T > &  b 
)
inlinestatic

Compare Pairs.

Returns
  • 0: different
  • +1: identical values and order used
  • -1: identical values, but in reversed order

Definition at line 31 of file PairI.H.

References b, FixedList< T, N >::first(), and Pair< T >::second().

Referenced by Foam::operator==().

Here is the call graph for this function:
Here is the caller graph for this function:

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