Я пытаюсь написать стек на основе массива, который может быть динамически перераспределен.Основная проблема у меня заключается в том, как реализовать процедуру, которая изменяет размер массива.В C ++ это может выглядеть так:
template<class T, int incr>
void Vector<T, incr>::inflate(int increase) {
const int tsz = sizeof(T*);
T** st = new T*[quantity + increase];
memset(st, 0, (quantity + increase) * tsz);
memcpy(st, storage, quantity * tsz);
quantity += increase;
delete []storage;
storage = st;
}
, где int quantity;
и T** storage;
объявлены в приватном разделе.
Если есть кто-нибудь, кто мог бы поделиться со мной некоторым примером, я быбыть очень благодарным.Я пытался просмотреть реализацию Ada.Containers.Vectors, но, черт возьми ... она слишком большая = P
Пока я сделал это Vector.ads Может кто-нибудь помочь?