2013-09-28 17 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