所以我想实现我的Vector
类pop_back()
功能,但我没有得到预期的结果:自定义矢量pop_back功能
这是我当前的功能:
template <typename T>
void Vector<T>::pop_back() {
if(vsize > 0){
array[vsize].~T();
--vsize;
}
}
为什么没有按这是否删除数组中的最后一个元素?
这里是我的.h
:
template <typename T>
class Vector {
public:
Vector();
~Vector();
void push_back(const T &e);
int size() const;
void pop_back();
void allocate_new();
T operator[](int index);
private:
Vector(const Vector<T> & v);
Vector<T> & operator=(const Vector<T> &);
int vsize;
int capacity;
T* array;
};
是你的'数组'索引从1开始? –
它从0开始。 –
然后它应该是'if(vsize> = 0)'。 – 0x499602D2