Gecode::SharedArray< T > Class Template Reference

Shared array with arbitrary number of elements. More...

`#include <shared-array.hpp>`

## Classes

class | SAO
| Implementation of object for shared arrays. More...

## 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 SharedArray< 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.
| SharedArray (void)
| Construct as not yet intialized.
| SharedArray (int n)
| Initialize as array with n elements.
void | init (int n)
| Initialize as array with n elements.
| SharedArray (const SharedArray &a)
| Initialize from shared array a (share elements).
| SharedArray (const ArgArrayBase< T > &a)
| Initialize from argument array a.
T & | operator[] (int i)
| Access element at position i.
const T & | operator[] (int i) const
| Access element at position i.
int | size (void) const
| Return number of elements.
bool | operator== (const SharedArray< T > &sa) const
| Test equality with sa.

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

## Additional Inherited Members

Public Member Functions inherited from Gecode::SharedHandle
| SharedHandle (void)
| Create shared handle with no object pointing to.
| SharedHandle (SharedHandle::Object *so)
| Create shared handle that points to shared object so.
| SharedHandle (const SharedHandle &sh)
| Copy constructor maintaining reference count.
SharedHandle & | operator= (const SharedHandle &sh)
| Assignment operator maintaining reference count.
| ~SharedHandle (void)
| Destructor that maintains reference count.
| operator bool (void) const
| Whether handle points to an object.
Protected Member Functions inherited from Gecode::SharedHandle
SharedHandle::Object * | object (void) const
| Access to the shared object.
void | object (SharedHandle::Object *n)
| Modify shared object.

## Detailed Description

template<class T>
class Gecode::SharedArray< T >

Shared array with arbitrary number of elements.

Sharing is implemented by reference counting: the same elements are shared among several objects.

Definition at line 53 of file shared-array.hpp.

## Member Typedef Documentation

## value_type

template<class T>

typedef T Gecode::SharedArray< T >::value_type

Type of the view stored in this array.

Definition at line 89 of file shared-array.hpp.

## reference

template<class T>

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

Type of a reference to the value type.

Definition at line 91 of file shared-array.hpp.

## const_reference

template<class T>

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

Type of a constant reference to the value type.

Definition at line 93 of file shared-array.hpp.

## pointer

template<class T>

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

Type of a pointer to the value type.

Definition at line 95 of file shared-array.hpp.

## const_pointer

template<class T>

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

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

Definition at line 97 of file shared-array.hpp.

## iterator

template<class T>

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

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

Definition at line 99 of file shared-array.hpp.

## const_iterator

template<class T>

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

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

Definition at line 101 of file shared-array.hpp.

## reverse_iterator

template<class T>

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

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

Definition at line 103 of file shared-array.hpp.

## const_reverse_iterator

template<class T>

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

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

Definition at line 105 of file shared-array.hpp.

## Constructor & Destructor Documentation

## SharedArray() [1/4]

template<class T>

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

inline

Construct as not yet intialized.

The only member functions that can be used on a constructed but not yet initialized shared array is init and the assignment operator .

Definition at line 242 of file shared-array.hpp.

## SharedArray() [2/4]

template<class T>

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

inline

Initialize as array with n elements.

Definition at line 246 of file shared-array.hpp.

## SharedArray() [3/4]

template<class T>

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

inline

Initialize from shared array a (share elements).

Definition at line 251 of file shared-array.hpp.

## SharedArray() [4/4]

template<class T>

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

inline

Initialize from argument array a.

Definition at line 291 of file shared-array.hpp.

## Member Function Documentation

## init()

template<class T>

void Gecode::SharedArray< T >::init | ( | int | n | ) |

inline

Initialize as array with n elements.

This member function can only be used once and only if the shared array has been constructed with the default constructor.

Definition at line 256 of file shared-array.hpp.

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

template<class T>

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

inline

Access element at position i.

Definition at line 263 of file shared-array.hpp.

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

template<class T>

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

inline

Access element at position i.

Definition at line 270 of file shared-array.hpp.

## size()

template<class T>

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

inline

Return number of elements.

Definition at line 299 of file shared-array.hpp.

## operator==()

template<class T>

bool Gecode::SharedArray< T >::operator== | ( | const SharedArray< T > & | sa | ) | const

inline

Test equality with sa.

Definition at line 277 of file shared-array.hpp.

## begin() [1/2]

template<class T>

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

inline

Return an iterator at the beginning of the array.

Definition at line 306 of file shared-array.hpp.

## begin() [2/2]

template<class T>

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

inline

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

Definition at line 313 of file shared-array.hpp.

## end() [1/2]

template<class T>

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

inline

Return an iterator past the end of the array.

Definition at line 320 of file shared-array.hpp.

## end() [2/2]

template<class T>

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

inline

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

Definition at line 327 of file shared-array.hpp.

## rbegin() [1/2]

template<class T>

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

inline

Return a reverse iterator at the end of the array.

Definition at line 334 of file shared-array.hpp.

## rbegin() [2/2]

template<class T>

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

inline

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

Definition at line 341 of file shared-array.hpp.

## rend() [1/2]

template<class T>

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

inline

Return a reverse iterator past the beginning of the array.

Definition at line 348 of file shared-array.hpp.

## rend() [2/2]

template<class T>

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

inline

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

Definition at line 355 of file shared-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 SharedArray< T > & | x )

related

Print array elements enclosed in curly brackets.

Definition at line 355 of file shared-array.hpp.

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

- gecode/kernel/data/shared-array.hpp