4 #include <rudiments/private/new.h> 6 template<
class valuetype >
12 template<
class valuetype >
15 uint64_t incrementsize) {
16 init((initialsize)?initialsize:128,(incrementsize)?incrementsize:32);
19 template<
class valuetype >
22 init(v.initial,v.extsize);
26 template<
class valuetype >
32 init(v.initial,v.extsize);
38 template<
class valuetype >
41 uint64_t incrementsize) {
45 extsize=incrementsize;
47 curext=extents.getFirst();
51 template<
class valuetype >
66 for (uint64_t i=0; i<v.
getLength(); i++) {
86 curext=extents.getFirst();
87 for (uint64_t eind=0; eind<curind; eind++) {
88 curext=curext->getNext();
92 template<
class valuetype >
98 template<
class valuetype >
108 template<
class valuetype >
114 template<
class valuetype >
120 template<
class valuetype >
126 template<
class valuetype >
129 uint64_t inc=(extents.getLength())?extsize:initial;
130 while (this->size<size) {
131 valuetype *newext=
new valuetype[inc];
132 extents.append(newext);
133 this->size=this->size+inc;
138 template<
class valuetype >
146 curext=extents.getFirst();
150 uint64_t targetind=(index-initial+extsize)/extsize;
151 while (curind>targetind) {
152 curext=curext->getPrevious();
155 while (curind<targetind) {
156 curext=curext->getNext();
159 eind=initial+extsize*(curind-1);
163 return curext->getValue()[index-eind];
166 template<
class valuetype >
169 curext=extents.getFirst();
172 valuetype *ext=curext->getValue();
174 extents.remove(curext);
179 template<
class valuetype >
182 clear(initial,extsize);
185 template<
class valuetype >
188 uint64_t incrementsize) {
191 curext=extents.getLast();
192 while (curext!=extents.getFirst()) {
194 valuetype *ext=curext->getValue();
196 extents.remove(curext);
202 extsize=incrementsize;
205 valuetype *ext=curext->getValue();
206 for (uint64_t i=0; i<initial; i++) {
208 new(&(ext[i])) valuetype;
Definition: linkedlist.h:11
uint64_t getLength() const
Definition: dynamicarrayinlines.h:122
~dynamicarray()
Definition: dynamicarrayinlines.h:94
Definition: dynamicarray.h:40
valuetype & operator[](uint64_t index)
Definition: dynamicarrayinlines.h:100
dynamicarray()
Definition: dynamicarrayinlines.h:8
dynamicarray< valuetype > & operator=(const dynamicarray< valuetype > &v)
Definition: dynamicarrayinlines.h:28
void clear()
Definition: dynamicarrayinlines.h:181