从容器中提取指针的语法()

Syntax for extracting pointer from container back()

本文关键字:语法 指针 提取      更新时间:2023-10-16

这种语法可以接受吗?它看起来很乱,让我觉得它不那么优雅:

cdata.lastAnimation=&(this->animations.back());

cdata.lastAnimation是一个指针,但由于back()返回一个引用,而不是一个指针,我需要得到地址?

您可能会想,为什么不让cdata.lastAnimation作为引用而不是指针呢?因为cdata是POD struct,引用不能被赋值,不像指针可以。(这可能是在某些情况下指针比引用更好的少数例子之一)。

是的,这将工作得很好,尽管它可能(很少不)被缩短为:

cdata.lastAnimation = &animations.back();