4 #include <rudiments/private/rudimentsinlines.h> 5 #include <rudiments/private/new.h> 7 template<
class valuetype >
8 RUDIMENTS_TEMPLATE_INLINE
13 template<
class valuetype >
14 RUDIMENTS_TEMPLATE_INLINE
17 init((initialsize)?initialsize:128,(increment)?increment:32);
20 template<
class valuetype >
21 RUDIMENTS_TEMPLATE_INLINE
23 init(v.initial,v.extsize);
27 template<
class valuetype >
28 RUDIMENTS_TEMPLATE_INLINE
33 init(v.initial,v.extsize);
39 template<
class valuetype >
40 RUDIMENTS_TEMPLATE_INLINE
48 curext=extents.getFirst();
52 template<
class valuetype >
53 RUDIMENTS_TEMPLATE_INLINE
67 for (uint64_t i=0; i<v.
getLength(); i++) {
87 curext=extents.getFirst();
88 for (uint64_t eind=0; eind<curind; eind++) {
89 curext=curext->getNext();
93 template<
class valuetype >
94 RUDIMENTS_TEMPLATE_INLINE
99 template<
class valuetype >
100 RUDIMENTS_TEMPLATE_INLINE
109 template<
class valuetype >
110 RUDIMENTS_TEMPLATE_INLINE
115 template<
class valuetype >
116 RUDIMENTS_TEMPLATE_INLINE
118 uint64_t inc=(extents.getLength())?extsize:initial;
119 while (this->size<size) {
120 valuetype *newext=
new valuetype[inc];
121 extents.append(newext);
122 this->size=this->size+inc;
127 template<
class valuetype >
128 RUDIMENTS_TEMPLATE_INLINE
135 curext=extents.getFirst();
139 uint64_t targetind=(index-initial+extsize)/extsize;
140 while (curind>targetind) {
141 curext=curext->getPrevious();
144 while (curind<targetind) {
145 curext=curext->getNext();
148 eind=initial+extsize*(curind-1);
152 return curext->getValue()[index-eind];
155 template<
class valuetype >
156 RUDIMENTS_TEMPLATE_INLINE
158 curext=extents.getFirst();
161 valuetype *ext=curext->getValue();
163 extents.remove(curext);
168 template<
class valuetype >
169 RUDIMENTS_TEMPLATE_INLINE
173 curext=extents.getLast();
174 while (curext!=extents.getFirst()) {
176 valuetype *ext=curext->getValue();
178 extents.remove(curext);
183 valuetype *ext=curext->getValue();
184 for (uint64_t i=0; i<initial; i++) {
186 new(&(ext[i])) valuetype;
~dynamicarray()
Definition: dynamicarrayinlines.h:95
uint64_t getLength() const
Definition: dynamicarrayinlines.h:111
dynamicarray< valuetype > & operator=(const dynamicarray< valuetype > &v)
Definition: dynamicarrayinlines.h:29
Definition: linkedlist.h:11
valuetype & operator[](uint64_t index)
Definition: dynamicarrayinlines.h:101
Definition: dynamicarray.h:40
void clear()
Definition: dynamicarrayinlines.h:170
dynamicarray()
Definition: dynamicarrayinlines.h:9