对于我需要作出一个自定义矢量类,可以用作所有作业是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'通常会顺便返回第一个元素的值 –