vector的back()函数
Posted viewcode
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vector的back()函数相关的知识,希望对你有一定的参考价值。
back()函数
在x86平台,返回最后一个元素时应用如:
commentPtr &comment = comments.back().
正常。
但这种写法比较危险,comment是comments最后一个元素的引用。没有复制动作。
当临时变量的生命周期结束时,引用就悬空失效了。
比如:
而在arm平台,出现问题:得到的引用是空值或者是失效的值。
而采用
commentPtr comment = comments.back().
正常。
二者的区别在于,使用一个引用接受引用返回值,或者使用一个新变量接收引用返回值。
back()是一个引用。但“=”包含了一个复制的动作。
但仍然需要一个对象来接受。
arm平台编译器不能处理引用的方式,这也许是arm平台能力所限,或不支持这种方式。
以上是关于vector的back()函数的主要内容,如果未能解决你的问题,请参考以下文章
[STL] vector中函数emplace_back的实现原理