自定义向量类中的pop_back函数



所以我一直在看这个网站上的代码:https://www.geeksforgeeks.org/program-to-create-custom-vector-class-in-c/.但我在理解这一部分时遇到了问题:

template <typename DT>
DT GenericMyVector<DT>::pop_back()
{
return arr[length-- - 1];
}

我知道这会将int length降低一,并且当您调用函数大小时,它会减小一。但我的问题是:- 1做什么?既然数组的大小是固定的,这如何降低向量占用的内存量?最后一个元素究竟是如何弹出的?

length--的求值结果为长度值(求值后递减(。所以您正在访问的项目是arr[length - 1]。您需要-1,因为数组索引从零开始。

更容易将代码想象为:

template <typename DT>
DT GenericMyVector<DT>::pop_back()
{
DT value = arr[length - 1];
length--;
return value;
}

最新更新