今日、Dynamic Array Stack を学び、教授がテンプレート コードをオンラインでアップロードしました。http://ideone.com/oXe2t1をご覧になりたい場合は、こちらのリンクをご覧ください。しかし、私が理解していないコードにいくつかの部分があります。
// I did not know how he comes up with the (3 * _size)
void pop() {
assert(!is_empty());
_size--;
if (_capacity > (3 * _size))
resize();
}
そして resize()
//how does he know that the max capacity will be equal to either (_size * 2)
// or DYNAMIC_ARRAYED_STACK_MIN_CAPACITY
void resize() {
_capacity = max(_size * 2, DYNAMIC_ARRAYED_STACK_MIN_CAPACITY);
unique_ptr<E[]> new_array(new E[_capacity]);
for (int i = 0; i < _size; i++)
new_array[i] = _elements[i];
_elements.swap(new_array);
}