STL中的后退功能

Ram*_*pta 0 c++ stl back

我随处读到back()函数返回对最后一个元素的引用,但我有一个疑问.

我用元素1,3,5 resp创建了一个向量.然后我写了下面的代码

int i = v.back();
i++;
Run Code Online (Sandbox Code Playgroud)

在上面的两个陈述之后,我打印了矢量,我得到了输出1 3 5,而当我增加参考时它应该是1 3 6.

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

1 3 6
Run Code Online (Sandbox Code Playgroud)

我不明白输出的差异,据我说它应该是一样的.如果我错了,请纠正我.

hmj*_*mjd 8

代码不会通过引用递增最后一个元素,它会递增最后一个元素的副本.改成:

int& i = v.back();
i++;
Run Code Online (Sandbox Code Playgroud)