c – 如何获取指向std :: vector的最后插入元素的指针?

我想出了以下剪辑,但它看起来很hacky.

vector<int> collection;
collection.push_back(42);
int *pointer = &(*(collection.end()--));

是否有一种简单的方法来获取指向最后插入元素的指针?

最佳答案
对于std :: vector,back()返回对最后一个元素的引用,因此& collection.back()就是您所需要的.

在C 17中,emplace_back返回对新元素的引用.您可以使用它而不是push_back:

vector<int> collection;
int *pointer = &collection.emplace_back(42);

转载注明原文:c – 如何获取指向std :: vector的最后插入元素的指针? - 代码日志