Gecode::ArgArrayBase< T > Class Template Reference
[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 Functions | |
(Note that these are not member functions.) | |
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
typedef T Gecode::ArgArrayBase< T >::value_type |
typedef T& Gecode::ArgArrayBase< T >::reference |
typedef const T& Gecode::ArgArrayBase< T >::const_reference |
typedef T* Gecode::ArgArrayBase< T >::pointer |
typedef const T* Gecode::ArgArrayBase< T >::const_pointer |
typedef T* Gecode::ArgArrayBase< T >::iterator |
typedef const T* Gecode::ArgArrayBase< T >::const_iterator |
typedef std::reverse_iterator<T*> Gecode::ArgArrayBase< T >::reverse_iterator |
typedef std::reverse_iterator<const T*> Gecode::ArgArrayBase< T >::const_reverse_iterator |
Constructor & Destructor Documentation
Gecode::ArgArrayBase< T >::ArgArrayBase | ( | void | ) | [inline] |
Gecode::ArgArrayBase< T >::ArgArrayBase | ( | int | n | ) | [inline, explicit] |
Gecode::ArgArrayBase< T >::ArgArrayBase | ( | const ArgArrayBase< T > & | a | ) | [inline] |
Gecode::ArgArrayBase< T >::ArgArrayBase | ( | const std::vector< T > & | a | ) | [inline] |
Gecode::ArgArrayBase< T >::ArgArrayBase | ( | std::initializer_list< T > | a | ) | [inline] |
Gecode::ArgArrayBase< T >::ArgArrayBase | ( | InputIterator | first, | |
InputIterator | last | |||
) | [inline] |
Gecode::ArgArrayBase< T >::~ArgArrayBase | ( | void | ) | [inline] |
Member Function Documentation
T * Gecode::ArgArrayBase< T >::allocate | ( | int | n | ) | [inline, protected] |
void Gecode::ArgArrayBase< T >::resize | ( | int | i | ) | [inline, protected] |
A Gecode::ArgArrayBase< T >::concat | ( | const ArgArrayBase< T > & | x | ) | const [inline, protected] |
A Gecode::ArgArrayBase< T >::concat | ( | const T & | x | ) | const [inline, protected] |
A & Gecode::ArgArrayBase< T >::append | ( | const T & | x | ) | [inline, protected] |
A & Gecode::ArgArrayBase< T >::append | ( | const ArgArrayBase< T > & | x | ) | [inline, protected] |
A Gecode::ArgArrayBase< T >::slice | ( | int | start, | |
int | inc = 1 , |
|||
int | n = -1 | |||
) | [inline, 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.
Reimplemented in Gecode::ArgArray< T >, Gecode::VarArgArray< Var >, Gecode::ArgArray< IntSet >, Gecode::ArgArray< int >, Gecode::ArgArray< SymmetryHandle >, Gecode::ArgArray< FloatVal >, Gecode::ArgArray< SEB >, Gecode::VarArgArray< SetVar >, Gecode::VarArgArray< IntVar >, Gecode::VarArgArray< FloatVar >, and Gecode::VarArgArray< BoolVar >.
const ArgArrayBase< T > & Gecode::ArgArrayBase< T >::operator= | ( | const ArgArrayBase< T > & | a | ) | [inline] |
int Gecode::ArgArrayBase< T >::size | ( | void | ) | const [inline] |
T & Gecode::ArgArrayBase< T >::operator[] | ( | int | i | ) | [inline] |
const T & Gecode::ArgArrayBase< T >::operator[] | ( | int | i | ) | const [inline] |
ArgArrayBase< T >::iterator Gecode::ArgArrayBase< T >::begin | ( | void | ) | [inline] |
ArgArrayBase< T >::const_iterator Gecode::ArgArrayBase< T >::begin | ( | void | ) | const [inline] |
ArgArrayBase< T >::iterator Gecode::ArgArrayBase< T >::end | ( | void | ) | [inline] |
ArgArrayBase< T >::const_iterator Gecode::ArgArrayBase< T >::end | ( | void | ) | const [inline] |
ArgArrayBase< T >::reverse_iterator Gecode::ArgArrayBase< T >::rbegin | ( | void | ) | [inline] |
ArgArrayBase< T >::const_reverse_iterator Gecode::ArgArrayBase< T >::rbegin | ( | void | ) | const [inline] |
ArgArrayBase< T >::reverse_iterator Gecode::ArgArrayBase< T >::rend | ( | void | ) | [inline] |
ArgArrayBase< T >::const_reverse_iterator Gecode::ArgArrayBase< T >::rend | ( | void | ) | const [inline] |
Friends And Related Function Documentation
std::basic_ostream< Char, Traits > & operator<< | ( | std::basic_ostream< Char, Traits > & | os, | |
const ArgArrayBase< T > & | x | |||
) | [related] |
Member Data Documentation
int Gecode::ArgArrayBase< T >::n [protected] |
int Gecode::ArgArrayBase< T >::capacity [protected] |
T* Gecode::ArgArrayBase< T >::a [protected] |
const int Gecode::ArgArrayBase< T >::onstack_size = 16 [static, protected] |
T Gecode::ArgArrayBase< T >::onstack[onstack_size] [protected] |
The documentation for this class was generated from the following file:
- gecode/kernel/data/array.hpp