對於我需要作出一個自定義矢量類,可以用作所有作業是O(1)的隊列的容器的作業。我怎樣才能使pop_front動態數組
我想在我的向量中實現pop_front函數來做到這一點,但它不工作。這是我所擁有的。
Void pop_front(){
arr += sizeof(T);
siz--;
}
arr
是動態分配的數組我使用的容器,並siz
是它的當前大小。我想要做什麼有什麼根本性的錯誤?
對於我需要作出一個自定義矢量類,可以用作所有作業是O(1)的隊列的容器的作業。我怎樣才能使pop_front動態數組
我想在我的向量中實現pop_front函數來做到這一點,但它不工作。這是我所擁有的。
Void pop_front(){
arr += sizeof(T);
siz--;
}
arr
是動態分配的數組我使用的容器,並siz
是它的當前大小。我想要做什麼有什麼根本性的錯誤?
我想你的數組容器是一個包含你的元素大小的類。只要忽略第一個元素即可忽略它!您可以控制用戶如何通過operator[]()
函數訪問每個元素(因此它的索引),所以在pop_front()之後,您可以通過忽略第一個元素(operator[]()
)來更改數組的訪問方式。
夠簡單嗎?希望如此!它需要一些工作和一些測試,但你可以做到!
謝謝,我正在考慮這個,但認爲這可能是太低效率的記憶智慧。再看一遍,我們只被賦予了時間複雜度的要求,而沒有考慮到內存。 – d0m1n1c
['std :: deque'](http://en.cppreference.com/w/cpp/container/deque)? –
@Oli,如果允許的話,不會是太多的任務 – Leeor
'pop_front'通常會順便返回第一個元素的值 –