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

Base-class for argument arrays. More...

`#include <array.hpp>`

## Protected Member Functions

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

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

static const int | onstack_size = 16
| How many elements are possible inside array.

## Related Symbols

(Note that these are not member symbols.)
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.

## Associated types

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.

## Constructors and initialization

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

## Array size

int | size (void) const
| Return size of array (number of elements).

## Array elements

T & | operator[] (int i)
| Return element at position i.
const T & | operator[] (int i) const
| Return element at position i.

## Array iteration

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.

## Destructor

| ~ArgArrayBase (void)
| Destructor.

## Detailed Description

template<class T>
class Gecode::ArgArrayBase< T >

Base-class for argument arrays.

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 537 of file array.hpp.

## Member Typedef Documentation

## value_type

template<class T>

typedef T Gecode::ArgArrayBase< T >::value_type

Type of the view stored in this array.

Definition at line 576 of file array.hpp.

## reference

template<class T>

typedef T& Gecode::ArgArrayBase< T >::reference

Type of a reference to the value type.

Definition at line 578 of file array.hpp.

## const_reference

template<class T>

typedef const T& Gecode::ArgArrayBase< T >::const_reference

Type of a constant reference to the value type.

Definition at line 580 of file array.hpp.

## pointer

template<class T>

typedef T* Gecode::ArgArrayBase< T >::pointer

Type of a pointer to the value type.

Definition at line 582 of file array.hpp.

## const_pointer

template<class T>

typedef const T* Gecode::ArgArrayBase< T >::const_pointer

Type of a read-only pointer to the value type.

Definition at line 584 of file array.hpp.

## iterator

template<class T>

typedef T* Gecode::ArgArrayBase< T >::iterator

Type of the iterator used to iterate through this array's elements.

Definition at line 586 of file array.hpp.

## const_iterator

template<class T>

typedef const T* Gecode::ArgArrayBase< T >::const_iterator

Type of the iterator used to iterate read-only through this array's elements.

Definition at line 588 of file array.hpp.

## reverse_iterator

template<class T>

typedef std::reverse_iterator<T*> Gecode::ArgArrayBase< T >::reverse_iterator

Type of the iterator used to iterate backwards through this array's elements.

Definition at line 590 of file array.hpp.

## const_reverse_iterator

template<class T>

typedef std::reverse_iterator<const T*> Gecode::ArgArrayBase< T >::const_reverse_iterator

Type of the iterator used to iterate backwards and read-only through this array's elements.

Definition at line 592 of file array.hpp.

## Constructor & Destructor Documentation

## ArgArrayBase() [1/6]

template<class T>

Gecode::ArgArrayBase< T >::ArgArrayBase | ( | void |  | ) |

inline

Allocate empty array.

Definition at line 1551 of file array.hpp.

## ArgArrayBase() [2/6]

template<class T>

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

inline explicit

Allocate array with n elements.

Definition at line 1556 of file array.hpp.

## ArgArrayBase() [3/6]

template<class T>

Gecode::ArgArrayBase< T >::ArgArrayBase | ( | const ArgArrayBase< T > & | a | ) |

inline

Initialize from argument array a (copy elements).

Definition at line 1561 of file array.hpp.

## ArgArrayBase() [4/6]

template<class T>

Gecode::ArgArrayBase< T >::ArgArrayBase | ( | const std::vector< T > & | a | ) |

inline

Initialize from vector a.

Definition at line 1568 of file array.hpp.

## ArgArrayBase() [5/6]

template<class T>

Gecode::ArgArrayBase< T >::ArgArrayBase | ( | std::initializer_list< T > | a | ) |

inline

Initialize from initializer list a.

Definition at line 1576 of file array.hpp.

## ArgArrayBase() [6/6]

template<class T>
template<class InputIterator>

Gecode::ArgArrayBase< T >::ArgArrayBase | ( | InputIterator | first,
|  | InputIterator | last )

inline

Initialize from InputIterator begin and end.

Definition at line 1703 of file array.hpp.

## ~ArgArrayBase()

template<class T>

Gecode::ArgArrayBase< T >::~ArgArrayBase | ( | void |  | ) |

inline

Destructor.

Definition at line 1586 of file array.hpp.

## Member Function Documentation

## allocate()

template<class T>

T * Gecode::ArgArrayBase< T >::allocate | ( | int | n | ) |

inline protected

Allocate memory for n elements.

Definition at line 1527 of file array.hpp.

## resize()

template<class T>

void Gecode::ArgArrayBase< T >::resize | ( | int | i | ) |

inline protected

Resize to hold at least i additional elements.

Definition at line 1534 of file array.hpp.

## concat() [1/2]

template<class T>
template<class A>

A Gecode::ArgArrayBase< T >::concat | ( | const ArgArrayBase< T > & | x | ) | const

inline protected

Return this array concatenated with x.

Definition at line 1723 of file array.hpp.

## concat() [2/2]

template<class T>
template<class A>

A Gecode::ArgArrayBase< T >::concat | ( | const T & | x | ) | const

inline protected

Return this array concatenated with x.

Definition at line 1734 of file array.hpp.

## append() [1/2]

template<class T>
template<class A>

A & Gecode::ArgArrayBase< T >::append | ( | const T & | x | ) |

inline protected

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

Definition at line 1694 of file array.hpp.

## append() [2/2]

template<class T>
template<class A>

A & Gecode::ArgArrayBase< T >::append | ( | const ArgArrayBase< T > & | x | ) |

inline protected

Append x to the end of the array.

Definition at line 1714 of file array.hpp.

## slice()

template<class T>
template<class A>

A Gecode::ArgArrayBase< T >::slice | ( | int | start,
|  | int | inc = 1,
|  | int | n = -1 )

protected

Return slice of length at most n such that forall ,

If n is -1, then all possible elements starting from start with increment inc are returned.

Definition at line 1675 of file array.hpp.

## operator=()

template<class T>

const ArgArrayBase< T > & Gecode::ArgArrayBase< T >::operator= | ( | const ArgArrayBase< T > & | a | ) |

inline

Initialize from view array a (copy elements).

Definition at line 1593 of file array.hpp.

## size()

template<class T>

int Gecode::ArgArrayBase< T >::size | ( | void |  | ) | const

inline

Return size of array (number of elements).

Definition at line 1607 of file array.hpp.

## operator[]() [1/2]

template<class T>

T & Gecode::ArgArrayBase< T >::operator[] | ( | int | i | ) |

inline

Return element at position i.

Definition at line 1613 of file array.hpp.

## operator[]() [2/2]

template<class T>

const T & Gecode::ArgArrayBase< T >::operator[] | ( | int | i | ) | const

inline

Return element at position i.

Definition at line 1620 of file array.hpp.

## begin() [1/2]

template<class T>

ArgArrayBase< T >::iterator Gecode::ArgArrayBase< T >::begin | ( | void |  | ) |

inline

Return an iterator at the beginning of the array.

Definition at line 1627 of file array.hpp.

## begin() [2/2]

template<class T>

ArgArrayBase< T >::const_iterator Gecode::ArgArrayBase< T >::begin | ( | void |  | ) | const

inline

Return a read-only iterator at the beginning of the array.

Definition at line 1633 of file array.hpp.

## end() [1/2]

template<class T>

ArgArrayBase< T >::iterator Gecode::ArgArrayBase< T >::end | ( | void |  | ) |

inline

Return an iterator past the end of the array.

Definition at line 1639 of file array.hpp.

## end() [2/2]

template<class T>

ArgArrayBase< T >::const_iterator Gecode::ArgArrayBase< T >::end | ( | void |  | ) | const

inline

Return a read-only iterator past the end of the array.

Definition at line 1645 of file array.hpp.

## rbegin() [1/2]

template<class T>

ArgArrayBase< T >::reverse_iterator Gecode::ArgArrayBase< T >::rbegin | ( | void |  | ) |

inline

Return a reverse iterator at the end of the array.

Definition at line 1651 of file array.hpp.

## rbegin() [2/2]

template<class T>

ArgArrayBase< T >::const_reverse_iterator Gecode::ArgArrayBase< T >::rbegin | ( | void |  | ) | const

inline

Return a reverse and read-only iterator at the end of the array.

Definition at line 1657 of file array.hpp.

## rend() [1/2]

template<class T>

ArgArrayBase< T >::reverse_iterator Gecode::ArgArrayBase< T >::rend | ( | void |  | ) |

inline

Return a reverse iterator past the beginning of the array.

Definition at line 1663 of file array.hpp.

## rend() [2/2]

template<class T>

ArgArrayBase< T >::const_reverse_iterator Gecode::ArgArrayBase< T >::rend | ( | void |  | ) | const

inline

Return a reverse and read-only iterator past the beginning of the array.

Definition at line 1669 of file array.hpp.

## Friends And Related Symbol Documentation

## operator<<()

template<class Char, class Traits, class T>

std::basic_ostream< Char, Traits > & operator<< | ( | std::basic_ostream< Char, Traits > & | os,
|  | const ArgArrayBase< T > & | x )

related

Print array elements enclosed in curly brackets.

Definition at line 1998 of file array.hpp.

## Member Data Documentation

## n

template<class T>

int Gecode::ArgArrayBase< T >::n

protected

Number of elements.

Definition at line 540 of file array.hpp.

## capacity

template<class T>

int Gecode::ArgArrayBase< T >::capacity

protected

Allocated size of the array.

Definition at line 542 of file array.hpp.

## a

template<class T>

T* Gecode::ArgArrayBase< T >::a

protected

Element array.

Definition at line 544 of file array.hpp.

## onstack_size

template<class T>

const int Gecode::ArgArrayBase< T >::onstack_size = 16

static protected

How many elements are possible inside array.

Definition at line 546 of file array.hpp.

## onstack

template<class T>

T Gecode::ArgArrayBase< T >::onstack[onstack_size]

protected

In-array storage for elements.

Definition at line 548 of file array.hpp.

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

- gecode/kernel/data/array.hpp