39 template<
class T>
class v_array
118 void push(
const T &new_elem);
126 void push_many(
const T* new_elem,
size_t num);
170 size_t old_length = end_array - begin;
171 size_t new_length = 2 * old_length + 3;
174 end = begin + old_length;
175 end_array = begin + new_length;
183 if(end+num >= end_array)
185 size_t length = end - begin;
186 size_t new_length =
CMath::max(2 * (
size_t)(end_array - begin) + 3,
189 end = begin + length;
190 end_array = begin + new_length;
192 memcpy(end, new_elem, num *
sizeof(T));
199 size_t old_length = end_array-begin;
201 if (old_length < length)
202 memset(begin + old_length, 0, (length - old_length)*
sizeof(T));
205 end_array = begin + length;
213 end_array = begin + length;
219 if (stack.end != stack.begin)
220 return *(--stack.end);