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

时间:2013-06-19 20:11:14

标签: c++ pointers std stdvector push-back

我想出了以下剪辑,但它看起来非常h​​acky。

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

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

1 个答案:

答案 0 :(得分:17)

对于std::vectorback()会返回对最后一个元素的引用,因此您需要&collection.back()

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

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