我到处都读到back()函数返回对最后一个元素的引用,但是我对此表示怀疑。

我创建了一个包含元素1,3,5的向量,然后编写了以下代码

int i = v.back();
i++;


在以上两个语句之后,我打印了向量,并得到了输出1 3 5
而当我增加参考值时,它应该是1 3 6。

但是当我做(v.back())++然后打印向量的值时,我得到了结果

1 3 6


我不了解输出的差异,据我说应该是一样的。
如果我错了,请纠正我。

最佳答案

该代码不会通过引用增加最后一个元素,而是增加了最后一个元素的副本。改成:

int& i = v.back();
i++;

关于c++ - STL中的后退功能,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11359297/

10-11 22:23