2013-09-28 18 views
1

對於我需要作出一個自定義矢量類,可以用作所有作業是O(1)的隊列的容器的作業。我怎樣才能使pop_front動態數組

我想在我的向量中實現pop_front函數來做到這一點,但它不工作。這是我所擁有的。

Void pop_front(){ 
    arr += sizeof(T); 
    siz--; 
} 

arr是動態分配的數組我使用的容器,並siz是它的當前大小。我想要做什麼有什麼根本性的錯誤?

+0

['std :: deque'](http://en.cppreference.com/w/cpp/container/deque)? –

+1

@Oli,如果允許的話,不會是太多的任務 – Leeor

+0

'pop_front'通常會順便返回第一個元素的值 –

回答

0

我想你的數組容器是一個包含你的元素大小的類。只要忽略第一個元素即可忽略它!您可以控制用戶如何通過operator[]()函數訪問每個元素(因此它的索引),所以在pop_front()之後,您可以通過忽略第一個元素(operator[]())來更改數組的訪問方式。

夠簡單嗎?希望如此!它需要一些工作和一些測試,但你可以做到!

+0

謝謝,我正在考慮這個,但認爲這可能是太低效率的記憶智慧。再看一遍,我們只被賦予了時間複雜度的要求,而沒有考慮到內存。 – d0m1n1c