所以我寫了一個矢量類的函數push_back
,我現在試圖找出攤銷時間複雜度。我對編程的理論方面相當陌生,所以如果有人能夠通過它,那會很棒。尋找分期時間複雜度
這是我的函數:
void Vector<T>::push_back(const T &e) {
if(vsize + 1 > capacity)
allocate_new();
array[vsize] = e;
vsize++;
}
,這是我allocate_new
功能:
void Vector<T>::allocate_new() {
capacity = vsize * 4;
T* tmp = new T[capacity];
for(int i = 0; i < vsize; i++)
tmp[i] = array[i];
delete[] array;
array = tmp;
}
這可能更適合[cs.se]。 – millimoose
是的,在這裏回答:http://cs.stackexchange.com/questions/9380/why-is-push-back-in-c-vectors-constant-amortized – rileyberton