43 template<
class T,
class A>
81 template<
class T,
class A>
84 : a(a0), n(n0), x(a.template alloc<T>(n)) {}
86 template<
class T,
class A>
89 : a(a0), n(static_cast<int>(n0)), x(a.template alloc<T>(n)) {}
91 template<
class T,
class A>
94 : a(da.a), n(da.n), x(a.template alloc<T>(n)) {
95 (void)
heap.copy<T>(x,da.x,n);
98 template<
class T,
class A>
104 template<
class T,
class A>
109 a.free(x,n); n = da.n; x = a.template alloc<T>(n);
111 (void)
heap.copy(x,da.x,n);
116 template<
class T,
class A>
118 DynamicArray<T,A>::resize(
int i) {
119 int m = std::max(i+1, (3*n)/2);
120 x = a.realloc(
x,n,m);
124 template<
class T,
class A>
127 if (i >= n) resize(i);
132 template<
class T,
class A>
135 return operator [](
static_cast<int>(i));
138 template<
class T,
class A>
145 template<
class T,
class A>
148 return operator [](
static_cast<int>(i));
151 template<
class T,
class A>
Array with arbitrary number of elements.
T & operator[](int i)
Return element at position i (possibly resize)
~DynamicArray(void)
Release memory.
DynamicArray(A &a0, int n=32)
Initialize with size n.
const DynamicArray< T, A > & operator=(const DynamicArray< T, A > &da)
Assign array (copy elements from a)
Heap heap
The single global heap.
Support algorithms and datastructures
Gecode toplevel namespace
Post propagator for SetVar x