Gecode::ArgArray< T > Class Template Reference
Functionality by programming task » Programming variables

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

`#include <array.hpp>`

## Related Symbols

(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)
Related Symbols inherited from Gecode::ArgArrayBase< T >
template<class Char, class Traits, class T>
std::basic_ostream< Char, Traits > & | operator<< (std::basic_ostream< Char, Traits > &os, const ArgArrayBase< T > &x)
| Print array elements enclosed in curly brackets.

## 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 of length n such that forall , .

## 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.

## 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>
A | concat (const ArgArrayBase< T > &x) const
| Return this array concatenated with x.
template<class A>
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>
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.
T | 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 1750 of file array.hpp.

## ArgArray() [2/7]

template<class T>

Gecode::ArgArray< T >::ArgArray | ( | int | n | ) |

inline explicit

Allocate array with n elements.

Definition at line 1754 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 1758 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 1766 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 1771 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 1776 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 1782 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 of length n such that forall , .

Definition at line 1787 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 1794 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 1802 of file array.hpp.

## Friends And Related Symbol Documentation

## 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 1811 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 1818 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 1825 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 1900 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 1907 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 1914 of file array.hpp.

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

- gecode/kernel/data/array.hpp