Generated on Thu Mar 22 10:39:53 2012 for Gecode by doxygen 1.6.3

Gecode::VarArray< Var > Class Template Reference
[Programming variables]

Variable arrays More...

#include <array.hpp>

List of all members.

Public Member Functions

bool assigned (void) const
 Test if all variables are assigned.

Protected Attributes

int n
 Number of variables (size).
Varx
 Array of variables.

Related Functions

(Note that these are not member functions.)



template<class T >
ArrayTraits< VarArray< T >
>::ArgsType 
operator+ (const VarArray< T > &x, const VarArgArray< T > &y)
template<class T >
ArrayTraits< VarArray< T >
>::ArgsType 
operator+ (const VarArray< T > &x, const VarArray< T > &y)
template<class T >
ArrayTraits< VarArray< T >
>::ArgsType 
operator+ (const VarArgArray< T > &x, const VarArray< T > &y)
template<class T >
ArrayTraits< VarArray< T >
>::ArgsType 
operator+ (const VarArray< T > &x, const T &y)
template<class T >
ArrayTraits< VarArray< T >
>::ArgsType 
operator+ (const T &x, const VarArray< T > &y)
template<class Char , class Traits , class Var >
std::basic_ostream< Char,
Traits > & 
operator<< (std::basic_ostream< Char, Traits > &os, const VarArray< Var > &x)
 Print array elements enclosed in curly brackets.

Associated types



typedef Var value_type
 Type of the variable stored in this array.
typedef Varreference
 Type of a reference to the value type.
typedef const Varconst_reference
 Type of a constant reference to the value type.
typedef Varpointer
 Type of a pointer to the value type.
typedef const Varconst_pointer
 Type of a read-only pointer to the value type.
typedef Variterator
 Type of the iterator used to iterate through this array's elements.
typedef const Varconst_iterator
 Type of the iterator used to iterate read-only through this array's elements.
typedef std::reverse_iterator
< Var * > 
reverse_iterator
 Type of the iterator used to iterate backwards through this array's elements.
typedef std::reverse_iterator
< const Var * > 
const_reverse_iterator
 Type of the iterator used to iterate backwards and read-only through this array's elements.

Constructors and initialization



 VarArray (void)
 Default constructor (array of size 0).
 VarArray (Space &home, int m)
 Allocate array with m variables.
 VarArray (Space &home, const VarArgArray< Var > &)
 Initialize from variable argument array a (copy elements).
 VarArray (const VarArray< Var > &a)
 Initialize from variable array a (share elements).
const VarArray< Var > & operator= (const VarArray< Var > &a)
 Initialize from variable array a (share elements).

Array size



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

Array elements



Varoperator[] (int i)
 Return variable at position i.
const Varoperator[] (int i) const
 Return variable at position i.
ArrayTraits< VarArgArray< Var >
>::ArgsType 
slice (int start, int inc=1, int n=-1)

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.

Cloning



void update (Space &, bool share, VarArray< Var > &a)
 Update array to be a clone of array a.

Detailed Description

template<class Var>
class Gecode::VarArray< Var >

Variable arrays

Variable arrays store variables. They are typically used for storing the variables being part of a solution.

Never use them for temporary purposes, use argument arrays instead.

Variable arrays can be enlarged dynamically. For memory efficiency, the initial array is allocated in the space. When adding variables, it is automatically resized and allocated on the heap.

Definition at line 85 of file array.hpp.


Member Typedef Documentation

template<class Var>
typedef Var Gecode::VarArray< Var >::value_type

Type of the variable stored in this array.

Definition at line 95 of file array.hpp.

template<class Var>
typedef Var& Gecode::VarArray< Var >::reference

Type of a reference to the value type.

Definition at line 97 of file array.hpp.

template<class Var>
typedef const Var& Gecode::VarArray< Var >::const_reference

Type of a constant reference to the value type.

Definition at line 99 of file array.hpp.

template<class Var>
typedef Var* Gecode::VarArray< Var >::pointer

Type of a pointer to the value type.

Definition at line 101 of file array.hpp.

template<class Var>
typedef const Var* Gecode::VarArray< Var >::const_pointer

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

Definition at line 103 of file array.hpp.

template<class Var>
typedef Var* Gecode::VarArray< Var >::iterator

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

Definition at line 105 of file array.hpp.

template<class Var>
typedef const Var* Gecode::VarArray< Var >::const_iterator

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

Definition at line 107 of file array.hpp.

template<class Var>
typedef std::reverse_iterator<Var*> Gecode::VarArray< Var >::reverse_iterator

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

Definition at line 109 of file array.hpp.

template<class Var>
typedef std::reverse_iterator<const Var*> Gecode::VarArray< Var >::const_reverse_iterator

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

Definition at line 111 of file array.hpp.


Constructor & Destructor Documentation

template<class Var >
Gecode::VarArray< Var >::VarArray ( void   )  [inline]

Default constructor (array of size 0).

Definition at line 942 of file array.hpp.

template<class Var >
Gecode::VarArray< Var >::VarArray ( Space home,
int  m 
) [inline]

Allocate array with m variables.

Definition at line 946 of file array.hpp.

template<class Var>
Gecode::VarArray< Var >::VarArray ( Space home,
const VarArgArray< Var > &  a 
) [inline]

Initialize from variable argument array a (copy elements).

Definition at line 2067 of file array.hpp.

template<class Var>
Gecode::VarArray< Var >::VarArray ( const VarArray< Var > &  a  )  [inline]

Initialize from variable array a (share elements).

Definition at line 954 of file array.hpp.


Member Function Documentation

template<class Var>
const VarArray< Var > & Gecode::VarArray< Var >::operator= ( const VarArray< Var > &  a  )  [inline]

Initialize from variable array a (share elements).

Definition at line 960 of file array.hpp.

template<class Var >
int Gecode::VarArray< Var >::size ( void   )  const [inline]

Return size of array (number of elements).

Definition at line 967 of file array.hpp.

template<class Var >
Var & Gecode::VarArray< Var >::operator[] ( int  i  )  [inline]

Return variable at position i.

Definition at line 973 of file array.hpp.

template<class Var >
const Var & Gecode::VarArray< Var >::operator[] ( int  i  )  const [inline]

Return variable at position i.

Definition at line 980 of file array.hpp.

template<class Var >
ArrayTraits< VarArgArray< Var > >::ArgsType Gecode::VarArray< Var >::slice ( int  start,
int  inc = 1,
int  n = -1 
) [inline]

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

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

Definition at line 987 of file array.hpp.

template<class Var >
VarArray< Var >::iterator Gecode::VarArray< Var >::begin ( void   )  [inline]

Return an iterator at the beginning of the array.

Definition at line 1006 of file array.hpp.

template<class Var >
VarArray< Var >::const_iterator Gecode::VarArray< Var >::begin ( void   )  const [inline]

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

Definition at line 1012 of file array.hpp.

template<class Var >
VarArray< Var >::iterator Gecode::VarArray< Var >::end ( void   )  [inline]

Return an iterator past the end of the array.

Definition at line 1018 of file array.hpp.

template<class Var >
VarArray< Var >::const_iterator Gecode::VarArray< Var >::end ( void   )  const [inline]

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

Definition at line 1024 of file array.hpp.

template<class Var >
VarArray< Var >::reverse_iterator Gecode::VarArray< Var >::rbegin ( void   )  [inline]

Return a reverse iterator at the end of the array.

Definition at line 1030 of file array.hpp.

template<class Var >
VarArray< Var >::const_reverse_iterator Gecode::VarArray< Var >::rbegin ( void   )  const [inline]

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

Definition at line 1036 of file array.hpp.

template<class Var >
VarArray< Var >::reverse_iterator Gecode::VarArray< Var >::rend ( void   )  [inline]

Return a reverse iterator past the beginning of the array.

Definition at line 1042 of file array.hpp.

template<class Var >
VarArray< Var >::const_reverse_iterator Gecode::VarArray< Var >::rend ( void   )  const [inline]

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

Definition at line 1048 of file array.hpp.

template<class Var >
bool Gecode::VarArray< Var >::assigned ( void   )  const [inline]

Test if all variables are assigned.

Definition at line 1067 of file array.hpp.

template<class Var>
void Gecode::VarArray< Var >::update ( Space home,
bool  share,
VarArray< Var > &  a 
) [inline]

Update array to be a clone of array a.

If share is true, sharing is retained for all shared data structures. Otherwise, for each of them an independent copy is created.

Definition at line 1054 of file array.hpp.


Friends And Related Function Documentation

template<class T >
ArrayTraits< VarArray< T > >::ArgsType operator+ ( const VarArray< T > &  x,
const VarArgArray< T > &  y 
) [related]

Concatenate x and y and return result

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

Concatenate x and y and return result

template<class T >
ArrayTraits< VarArray< T > >::ArgsType operator+ ( const VarArgArray< T > &  x,
const VarArray< T > &  y 
) [related]

Concatenate x and y and return result

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

Concatenate x and y and return result

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

Concatenate x and y and return result

template<class Char , class Traits , class Var >
std::basic_ostream< Char, Traits > & operator<< ( std::basic_ostream< Char, Traits > &  os,
const VarArray< Var > &  x 
) [related]

Print array elements enclosed in curly brackets.

Definition at line 2085 of file array.hpp.


Member Data Documentation

template<class Var>
int Gecode::VarArray< Var >::n [protected]

Number of variables (size).

Definition at line 88 of file array.hpp.

template<class Var>
Var* Gecode::VarArray< Var >::x [protected]

Array of variables.

Definition at line 90 of file array.hpp.


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