Generated on Tue May 22 09:41:00 2018 for Gecode by doxygen 1.6.3

Gecode::ViewArray< View > Class Template Reference
[Programming actors]

View arrays. More...

#include <array.hpp>

List of all members.

Public Member Functions

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

Related Functions

(Note that these are not member functions.)



template<class Char , class Traits , class View >
std::basic_ostream< Char,
Traits > & 
operator<< (std::basic_ostream< Char, Traits > &os, const ViewArray< View > &x)
 Print array elements enclosed in curly brackets.

Associated types



typedef View value_type
 Type of the view stored in this array.
typedef View & reference
 Type of a reference to the value type.
typedef const View & const_reference
 Type of a constant reference to the value type.
typedef View * pointer
 Type of a pointer to the value type.
typedef const View * const_pointer
 Type of a read-only pointer to the value type.
typedef View * iterator
 Type of the iterator used to iterate through this array's elements.
typedef const View * const_iterator
 Type of the iterator used to iterate read-only through this array's elements.
typedef std::reverse_iterator
< View * > 
reverse_iterator
 Type of the iterator used to iterate backwards through this array's elements.
typedef std::reverse_iterator
< const View * > 
const_reverse_iterator
 Type of the iterator used to iterate backwards and read-only through this array's elements.

Constructors and initialization



 ViewArray (void)
 Default constructor (array of size 0).
 ViewArray (Space &home, int m)
 Allocate array with m views.
 ViewArray (Region &r, int m)
 Allocate array with m views.
 ViewArray (const ViewArray< View > &a)
 Initialize from view array a (share elements).
 ViewArray (Space &home, const ViewArray< View > &a)
 Initialize from view array a (copy elements).
 ViewArray (Region &r, const ViewArray< View > &a)
 Initialize from view array a (copy elements).
const ViewArray< View > & operator= (const ViewArray< View > &a)
 Initialize from view array a (share elements).
template<class Var >
 ViewArray (Space &home, const VarArgArray< Var > &a)
 Initialize from variable argument array a (copy elements).
template<class Var >
 ViewArray (Region &r, const VarArgArray< Var > &a)
 Initialize from variable argument array a (copy elements).

Array size



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

Array elements



View & operator[] (int i)
 Return view at position i.
const View & operator[] (int i) const
 Return view 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.

Dependencies



void subscribe (Space &home, Propagator &p, PropCond pc, bool schedule=true)
 Subscribe propagator p with propagation condition pc to variable.
void cancel (Space &home, Propagator &p, PropCond pc)
 Cancel subscription of propagator p with propagation condition pc to all views.
void subscribe (Space &home, Advisor &a)
 Subscribe advisor a to variable.
void cancel (Space &home, Advisor &a)
 Cancel subscription of advisor a.
void reschedule (Space &home, Propagator &p, PropCond pc)
 Re-schedule propagator p with propagation condition pc.

Cloning



void update (Space &home, ViewArray< View > &a)
 Update array to be a clone of array a.

Moving elements



void move_fst (int i)
 Move view from position 0 to position i (shift elements to the left).
void move_lst (int i)
 Move view from position size()-1 to position i (truncate array by one).
void move_fst (int i, Space &home, Propagator &p, PropCond pc)
 Move view from position 0 to position i (shift elements to the left).
void move_lst (int i, Space &home, Propagator &p, PropCond pc)
 Move view from position size()-1 to position i (truncate array by one).
void move_fst (int i, Space &home, Advisor &a)
 Move view from position 0 to position i (shift elements to the left).
void move_lst (int i, Space &home, Advisor &a)
 Move view from position size()-1 to position i (truncate array by one).

Dropping elements



void drop_fst (int i)
 Drop views from positions 0 to i-1 from array.
void drop_lst (int i)
 Drop views from positions i+1 to size()-1 from array.
void drop_fst (int i, Space &home, Propagator &p, PropCond pc)
 Drop views from positions 0 to i-1 from array.
void drop_lst (int i, Space &home, Propagator &p, PropCond pc)
 Drop assigned views from positions i+1 to size()-1 from array.
void drop_fst (int i, Space &home, Advisor &a)
 Drop views from positions 0 to i-1 from array.
void drop_lst (int i, Space &home, Advisor &a)
 Drop assigned views from positions i+1 to size()-1 from array.

View equality



bool same (void) const
 Test whether array has multiple occurence of the same view.
bool same (const View &y) const
 Test whether array contains a view being the same as y.
void unique (void)
 Remove all duplicate views from array (changes element order).

View sharing



bool shared (void) const
 Test whether array contains shared views.
template<class ViewY >
bool shared (const ViewY &y) const
 Test whether array contains a view being shared with y.
template<class ViewY >
bool shared (const ViewArray< ViewY > &y) const
 Test whether array together with array y contains shared views.

Detailed Description

template<class View>
class Gecode::ViewArray< View >

View arrays.

View arrays store views. They are typically used for storing the views with which propagators and branchers compute.

Definition at line 224 of file array.hpp.


Member Typedef Documentation

template<class View>
typedef View Gecode::ViewArray< View >::value_type

Type of the view stored in this array.

Definition at line 242 of file array.hpp.

template<class View>
typedef View& Gecode::ViewArray< View >::reference

Type of a reference to the value type.

Definition at line 244 of file array.hpp.

template<class View>
typedef const View& Gecode::ViewArray< View >::const_reference

Type of a constant reference to the value type.

Definition at line 246 of file array.hpp.

template<class View>
typedef View* Gecode::ViewArray< View >::pointer

Type of a pointer to the value type.

Definition at line 248 of file array.hpp.

template<class View>
typedef const View* Gecode::ViewArray< View >::const_pointer

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

Definition at line 250 of file array.hpp.

template<class View>
typedef View* Gecode::ViewArray< View >::iterator

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

Definition at line 252 of file array.hpp.

template<class View>
typedef const View* Gecode::ViewArray< View >::const_iterator

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

Definition at line 254 of file array.hpp.

template<class View>
typedef std::reverse_iterator<View*> Gecode::ViewArray< View >::reverse_iterator

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

Definition at line 256 of file array.hpp.

template<class View>
typedef std::reverse_iterator<const View*> Gecode::ViewArray< View >::const_reverse_iterator

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

Definition at line 258 of file array.hpp.


Constructor & Destructor Documentation

template<class View >
Gecode::ViewArray< View >::ViewArray ( void   )  [inline]

Default constructor (array of size 0).

Definition at line 1147 of file array.hpp.

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

Allocate array with m views.

Definition at line 1151 of file array.hpp.

template<class View >
Gecode::ViewArray< View >::ViewArray ( Region r,
int  m 
) [inline]

Allocate array with m views.

Definition at line 1157 of file array.hpp.

template<class View>
Gecode::ViewArray< View >::ViewArray ( const ViewArray< View > &  a  )  [inline]

Initialize from view array a (share elements).

Definition at line 1187 of file array.hpp.

template<class View>
Gecode::ViewArray< View >::ViewArray ( Space home,
const ViewArray< View > &  a 
) [inline]

Initialize from view array a (copy elements).

Definition at line 1163 of file array.hpp.

template<class View>
Gecode::ViewArray< View >::ViewArray ( Region r,
const ViewArray< View > &  a 
) [inline]

Initialize from view array a (copy elements).

Definition at line 1174 of file array.hpp.

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

Initialize from variable argument array a (copy elements).

Note that the view type View must provide a constructor for the associated Var type.

Definition at line 284 of file array.hpp.

template<class View>
template<class Var >
Gecode::ViewArray< View >::ViewArray ( Region r,
const VarArgArray< Var > &  a 
) [inline]

Initialize from variable argument array a (copy elements).

Note that the view type View must provide a constructor for the associated Var type.

Definition at line 302 of file array.hpp.


Member Function Documentation

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

Initialize from view array a (share elements).

Definition at line 1192 of file array.hpp.

template<class View >
int Gecode::ViewArray< View >::size ( void   )  const [inline]

Return size of array (number of elements).

Definition at line 1199 of file array.hpp.

template<class View >
void Gecode::ViewArray< View >::size ( int  n  )  [inline]

Decrease size of array (number of elements).

Definition at line 1205 of file array.hpp.

template<class View >
View & Gecode::ViewArray< View >::operator[] ( int  i  )  [inline]

Return view at position i.

Definition at line 1211 of file array.hpp.

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

Return view at position i.

Definition at line 1218 of file array.hpp.

template<class View >
ViewArray< View >::iterator Gecode::ViewArray< View >::begin ( void   )  [inline]

Return an iterator at the beginning of the array.

Definition at line 1225 of file array.hpp.

template<class View >
ViewArray< View >::const_iterator Gecode::ViewArray< View >::begin ( void   )  const [inline]

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

Definition at line 1231 of file array.hpp.

template<class View >
ViewArray< View >::iterator Gecode::ViewArray< View >::end ( void   )  [inline]

Return an iterator past the end of the array.

Definition at line 1237 of file array.hpp.

template<class View >
ViewArray< View >::const_iterator Gecode::ViewArray< View >::end ( void   )  const [inline]

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

Definition at line 1243 of file array.hpp.

template<class View >
ViewArray< View >::reverse_iterator Gecode::ViewArray< View >::rbegin ( void   )  [inline]

Return a reverse iterator at the end of the array.

Definition at line 1249 of file array.hpp.

template<class View >
ViewArray< View >::const_reverse_iterator Gecode::ViewArray< View >::rbegin ( void   )  const [inline]

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

Definition at line 1255 of file array.hpp.

template<class View >
ViewArray< View >::reverse_iterator Gecode::ViewArray< View >::rend ( void   )  [inline]

Return a reverse iterator past the beginning of the array.

Definition at line 1261 of file array.hpp.

template<class View >
ViewArray< View >::const_reverse_iterator Gecode::ViewArray< View >::rend ( void   )  const [inline]

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

Definition at line 1267 of file array.hpp.

template<class View >
void Gecode::ViewArray< View >::subscribe ( Space home,
Propagator p,
PropCond  pc,
bool  schedule = true 
) [inline]

Subscribe propagator p with propagation condition pc to variable.

In case process is false, the propagator is just subscribed but not scheduled for execution (this must be used when creating subscriptions during propagation).

Definition at line 1384 of file array.hpp.

template<class View >
void Gecode::ViewArray< View >::cancel ( Space home,
Propagator p,
PropCond  pc 
) [inline]

Cancel subscription of propagator p with propagation condition pc to all views.

Definition at line 1392 of file array.hpp.

template<class View >
void Gecode::ViewArray< View >::subscribe ( Space home,
Advisor a 
) [inline]

Subscribe advisor a to variable.

Definition at line 1399 of file array.hpp.

template<class View >
void Gecode::ViewArray< View >::cancel ( Space home,
Advisor a 
) [inline]

Cancel subscription of advisor a.

Definition at line 1406 of file array.hpp.

template<class View >
void Gecode::ViewArray< View >::reschedule ( Space home,
Propagator p,
PropCond  pc 
) [inline]

Re-schedule propagator p with propagation condition pc.

Definition at line 1413 of file array.hpp.

template<class View>
void Gecode::ViewArray< View >::update ( Space home,
ViewArray< View > &  a 
) [inline]

Update array to be a clone of array a.

Definition at line 1371 of file array.hpp.

template<class View >
void Gecode::ViewArray< View >::move_fst ( int  i  )  [inline]

Move view from position 0 to position i (shift elements to the left).

Definition at line 1273 of file array.hpp.

template<class View >
void Gecode::ViewArray< View >::move_lst ( int  i  )  [inline]

Move view from position size()-1 to position i (truncate array by one).

Definition at line 1279 of file array.hpp.

template<class View >
void Gecode::ViewArray< View >::move_fst ( int  i,
Space home,
Propagator p,
PropCond  pc 
) [inline]

Move view from position 0 to position i (shift elements to the left).

Before moving, cancel subscription of propagator p with propagation condition pc to view at position i.

Definition at line 1299 of file array.hpp.

template<class View >
void Gecode::ViewArray< View >::move_lst ( int  i,
Space home,
Propagator p,
PropCond  pc 
) [inline]

Move view from position size()-1 to position i (truncate array by one).

Before moving, cancel subscription of propagator p with propagation condition pc to view at position i.

Definition at line 1307 of file array.hpp.

template<class View >
void Gecode::ViewArray< View >::move_fst ( int  i,
Space home,
Advisor a 
) [inline]

Move view from position 0 to position i (shift elements to the left).

Before moving, cancel subscription of advisor a to view at position i.

Definition at line 1335 of file array.hpp.

template<class View >
void Gecode::ViewArray< View >::move_lst ( int  i,
Space home,
Advisor a 
) [inline]

Move view from position size()-1 to position i (truncate array by one).

Before moving, cancel subscription of advisor a to view at position i.

Definition at line 1343 of file array.hpp.

template<class View >
void Gecode::ViewArray< View >::drop_fst ( int  i  )  [inline]

Drop views from positions 0 to i-1 from array.

Definition at line 1285 of file array.hpp.

template<class View >
void Gecode::ViewArray< View >::drop_lst ( int  i  )  [inline]

Drop views from positions i+1 to size()-1 from array.

Definition at line 1292 of file array.hpp.

template<class View >
void Gecode::ViewArray< View >::drop_fst ( int  i,
Space home,
Propagator p,
PropCond  pc 
) [inline]

Drop views from positions 0 to i-1 from array.

Before moving, cancel subscription of propagator p with propagation condition pc to views at positions 0 to i-1.

Definition at line 1315 of file array.hpp.

template<class View >
void Gecode::ViewArray< View >::drop_lst ( int  i,
Space home,
Propagator p,
PropCond  pc 
) [inline]

Drop assigned views from positions i+1 to size()-1 from array.

Before moving, cancel subscription of propagator p with propagation condition pc to views at positions i+1 to size()-1.

Definition at line 1325 of file array.hpp.

template<class View >
void Gecode::ViewArray< View >::drop_fst ( int  i,
Space home,
Advisor a 
) [inline]

Drop views from positions 0 to i-1 from array.

Before moving, cancel subscription of advisor a to views at positions 0 to i-1.

Definition at line 1351 of file array.hpp.

template<class View >
void Gecode::ViewArray< View >::drop_lst ( int  i,
Space home,
Advisor a 
) [inline]

Drop assigned views from positions i+1 to size()-1 from array.

Before moving, cancel subscription of advisor a to views at positions i+1 to size()-1.

Definition at line 1361 of file array.hpp.

template<class View >
bool Gecode::ViewArray< View >::assigned ( void   )  const [inline]

Test if all variables are assigned.

Definition at line 1420 of file array.hpp.

template<class View >
bool Gecode::ViewArray< View >::same ( void   )  const [inline]

Test whether array has multiple occurence of the same view.

Note that assigned views are ignored.

Definition at line 1459 of file array.hpp.

template<class View>
bool Gecode::ViewArray< View >::same ( const View &  y  )  const [inline]

Test whether array contains a view being the same as y.

Note that assigned views are ignored.

Definition at line 1478 of file array.hpp.

template<class View >
void Gecode::ViewArray< View >::unique ( void   )  [inline]

Remove all duplicate views from array (changes element order).

Definition at line 1489 of file array.hpp.

template<class View >
bool Gecode::ViewArray< View >::shared ( void   )  const [inline]

Test whether array contains shared views.

Note that assigned views are ignored.

Definition at line 1502 of file array.hpp.

template<class View >
template<class ViewY >
bool Gecode::ViewArray< View >::shared ( const ViewY &  y  )  const [inline]

Test whether array contains a view being shared with y.

Note that assigned views are ignored.

Definition at line 1521 of file array.hpp.

template<class View >
template<class ViewY >
bool Gecode::ViewArray< View >::shared ( const ViewArray< ViewY > &  y  )  const [inline]

Test whether array together with array y contains shared views.

Note that assigned views are ignored.

Definition at line 1532 of file array.hpp.


Friends And Related Function Documentation

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

Print array elements enclosed in curly brackets.

Definition at line 2163 of file array.hpp.


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