今天我学习了Dynamic Array Stack,教授在线上传模板代码。如果您有兴趣查看http://ideone.com/oXe2t1,请点击此链接。但是代码中有些部分我不明白。关于DynamicArrayStack的基本问题
// I did not know how he comes up with the (3 * _size)
void pop() {
assert(!is_empty());
_size--;
if (_capacity > (3 * _size))
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);
}
这些数字很可能只是很好,但任意选择。你为什么不问他? – GManNickG
我会的,但是因为他在课后发布了代码,所以直到下周才会看到他。这就是为什么我把它放在这里,并问你们这件事。 –