Generated on Thu Jan 16 2025 00:00:00 for Gecode by doxygen 1.14.0

Argument array for non-primitive types. More...

#include <array.hpp>

(Note that these are not member symbols.)

template<class T>
ArrayTraits< ArgArray< T > >::ArgsType operator+ (const ArgArray< T > &x, const ArgArray< T > &y)
template<class T>
ArrayTraits< ArgArray< T > >::ArgsType operator+ (const ArgArray< T > &x, const T &y)
template<class T>
ArrayTraits< ArgArray< T > >::ArgsType operator+ (const T &x, const ArgArray< T > &y)
template<class Var>
ArrayTraits< VarArgArray< Var > >::ArgsType operator+ (const VarArgArray< Var > &x, const VarArgArray< Var > &y)
template<class Var>
ArrayTraits< VarArgArray< Var > >::ArgsType operator+ (const VarArgArray< Var > &x, const Var &y)
template<class Var>
ArrayTraits< VarArgArray< Var > >::ArgsType operator+ (const Var &x, const VarArgArray< Var > &y)

Constructors and initialization

 ArgArray (void)
 Allocate empty array.
 ArgArray (int n)
 Allocate array with n elements.
 ArgArray (int n, const T *e)
 Allocate array with n elements and initialize with elements from array e.
 ArgArray (const ArgArray< T > &a)
 Initialize from argument array a (copy elements)
 ArgArray (const std::vector< T > &a)
 Initialize from vector a.
 ArgArray (std::initializer_list< T > a)
 Initialize from initializer list a.
template<class InputIterator>
 ArgArray (InputIterator first, InputIterator last)
 Initialize from InputIterator first and last.

Array elements

ArrayTraits< ArgArray< T > >::ArgsType slice (int start, int inc=1, int n=-1)
 Return slice $y$ of length n such that forall $0\leq i<n$, $y_i=x_{\text{start}+i\cdot\text{inc}}$.

Appending elements

ArrayTraits< ArgArray< T > >::ArgsType & operator<< (const T &x)
 Insert a new element x at the end of the array (increase size by 1)
ArrayTraits< ArgArray< T > >::ArgsType & operator<< (const ArgArray< T > &x)
 Append x to the end of the array.
ArgArrayoperator= (const ArgArray &)=default
 Assignment operator.

Additional Inherited Members

typedef T value_type
 Type of the view stored in this array.
typedef T & reference
 Type of a reference to the value type.
typedef const T & const_reference
 Type of a constant reference to the value type.
typedef T * pointer
 Type of a pointer to the value type.
typedef const T * const_pointer
 Type of a read-only pointer to the value type.
typedef T * iterator
 Type of the iterator used to iterate through this array's elements.
typedef const T * const_iterator
 Type of the iterator used to iterate read-only through this array's elements.
typedef std::reverse_iterator< T * > reverse_iterator
 Type of the iterator used to iterate backwards through this array's elements.
typedef std::reverse_iterator< const T * > const_reverse_iterator
 Type of the iterator used to iterate backwards and read-only through this array's elements.
 ArgArrayBase (void)
 Allocate empty array.
 ArgArrayBase (int n)
 Allocate array with n elements.
 ArgArrayBase (const ArgArrayBase< T > &a)
 Initialize from argument array a (copy elements)
const ArgArrayBase< T > & operator= (const ArgArrayBase< T > &a)
 Initialize from view array a (copy elements)
 ArgArrayBase (const std::vector< T > &a)
 Initialize from vector a.
 ArgArrayBase (std::initializer_list< T > a)
 Initialize from initializer list a.
template<class InputIterator>
 ArgArrayBase (InputIterator first, InputIterator last)
 Initialize from InputIterator begin and end.
int size (void) const
 Return size of array (number of elements)
T & operator[] (int i)
 Return element at position i.
const T & operator[] (int i) const
 Return element at position i.
iterator begin (void)
 Return an iterator at the beginning of the array.
const_iterator begin (void) const
 Return a read-only iterator at the beginning of the array.
iterator end (void)
 Return an iterator past the end of the array.
const_iterator end (void) const
 Return a read-only iterator past the end of the array.
reverse_iterator rbegin (void)
 Return a reverse iterator at the end of the array.
const_reverse_iterator rbegin (void) const
 Return a reverse and read-only iterator at the end of the array.
reverse_iterator rend (void)
 Return a reverse iterator past the beginning of the array.
const_reverse_iterator rend (void) const
 Return a reverse and read-only iterator past the beginning of the array.
 ~ArgArrayBase (void)
 Destructor.
Protected Member Functions inherited from Gecode::ArgArrayBase< T >
T * allocate (int n)
 Allocate memory for n elements.
void resize (int i)
 Resize to hold at least i additional elements.
template<class A>
concat (const ArgArrayBase< T > &x) const
 Return this array concatenated with x.
template<class A>
concat (const T &x) const
 Return this array concatenated with x.
template<class A>
A & append (const T &x)
 Insert a new element x at the end of the array (increase size by 1)
template<class A>
A & append (const ArgArrayBase< T > &x)
 Append x to the end of the array.
template<class A>
slice (int start, int inc=1, int n=-1)
Protected Attributes inherited from Gecode::ArgArrayBase< T >
int n
 Number of elements.
int capacity
 Allocated size of the array.
T * a
 Element array.
onstack [onstack_size]
 In-array storage for elements.
Static Protected Attributes inherited from Gecode::ArgArrayBase< T >
static const int onstack_size = 16
 How many elements are possible inside array.

Detailed Description

template<class T>
class Gecode::ArgArray< T >

Argument array for non-primitive types.

Argument arrays are used as convenient mechanism of passing arguments when calling functions as they combine both the size and the elements of an array. For a small number of elements, memory is allocated by creating an argument array object. Otherwise the memory is allocated from the heap.

Definition at line 691 of file array.hpp.

Constructor & Destructor Documentation

◆ ArgArray() [1/7]

template<class T>
Gecode::ArgArray< T >::ArgArray ( void )
inline

Allocate empty array.

Definition at line 1756 of file array.hpp.

◆ ArgArray() [2/7]

template<class T>
Gecode::ArgArray< T >::ArgArray ( int n)
inlineexplicit

Allocate array with n elements.

Definition at line 1760 of file array.hpp.

◆ ArgArray() [3/7]

template<class T>
Gecode::ArgArray< T >::ArgArray ( int n,
const T * e )

Allocate array with n elements and initialize with elements from array e.

Definition at line 1764 of file array.hpp.

◆ ArgArray() [4/7]

template<class T>
Gecode::ArgArray< T >::ArgArray ( const ArgArray< T > & a)
inline

Initialize from argument array a (copy elements)

Definition at line 1772 of file array.hpp.

◆ ArgArray() [5/7]

template<class T>
Gecode::ArgArray< T >::ArgArray ( const std::vector< T > & a)
inline

Initialize from vector a.

Definition at line 1777 of file array.hpp.

◆ ArgArray() [6/7]

template<class T>
Gecode::ArgArray< T >::ArgArray ( std::initializer_list< T > a)
inline

Initialize from initializer list a.

Definition at line 1782 of file array.hpp.

◆ ArgArray() [7/7]

template<class T>
template<class InputIterator>
Gecode::ArgArray< T >::ArgArray ( InputIterator first,
InputIterator last )
inline

Initialize from InputIterator first and last.

Definition at line 1788 of file array.hpp.

Member Function Documentation

◆ slice()

template<class T>
ArrayTraits< ArgArray< T > >::ArgsType Gecode::ArgArray< T >::slice ( int start,
int inc = 1,
int n = -1 )
inline

Return slice $y$ of length n such that forall $0\leq i<n$, $y_i=x_{\text{start}+i\cdot\text{inc}}$.

Definition at line 1793 of file array.hpp.

◆ operator<<() [1/2]

template<class T>
ArrayTraits< ArgArray< T > >::ArgsType & Gecode::ArgArray< T >::operator<< ( const T & x)
inline

Insert a new element x at the end of the array (increase size by 1)

Definition at line 1800 of file array.hpp.

◆ operator<<() [2/2]

template<class T>
ArrayTraits< ArgArray< T > >::ArgsType & Gecode::ArgArray< T >::operator<< ( const ArgArray< T > & x)
inline

Append x to the end of the array.

Definition at line 1808 of file array.hpp.

◆ operator=()

template<class T>
ArgArray & Gecode::ArgArray< T >::operator= ( const ArgArray< T > & )
default

Assignment operator.

◆ operator+() [1/6]

template<class T>
ArrayTraits< ArgArray< T > >::ArgsType operator+ ( const ArgArray< T > & x,
const ArgArray< T > & y )
related

Concatenate x and y and return result

Definition at line 1817 of file array.hpp.

◆ operator+() [2/6]

template<class T>
ArrayTraits< ArgArray< T > >::ArgsType operator+ ( const ArgArray< T > & x,
const T & y )
related

Concatenate x and y and return result

Definition at line 1824 of file array.hpp.

◆ operator+() [3/6]

template<class T>
ArrayTraits< ArgArray< T > >::ArgsType operator+ ( const T & x,
const ArgArray< T > & y )
related

Concatenate x and y and return result

Definition at line 1831 of file array.hpp.

◆ operator+() [4/6]

template<class Var>
ArrayTraits< VarArgArray< Var > >::ArgsType operator+ ( const VarArgArray< Var > & x,
const VarArgArray< Var > & y )
related

Concatenate x and y and return result

Definition at line 1906 of file array.hpp.

◆ operator+() [5/6]

template<class Var>
ArrayTraits< VarArgArray< Var > >::ArgsType operator+ ( const VarArgArray< Var > & x,
const Var & y )
related

Concatenate x and y and return result

Definition at line 1913 of file array.hpp.

◆ operator+() [6/6]

template<class Var>
ArrayTraits< VarArgArray< Var > >::ArgsType operator+ ( const Var & x,
const VarArgArray< Var > & y )
related

Concatenate x and y and return result

Definition at line 1920 of file array.hpp.


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