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

dan*_*jar 9 c++ pointers std push-back stdvector

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

vector<int> collection;
collection.push_back(42);
int *pointer = &(*(collection.end()--));
Run Code Online (Sandbox Code Playgroud)

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

Cas*_*sey 19

For std::vector,back()返回对最后一个元素的引用,所以&collection.back()你需要的.

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

vector<int> collection;
int *pointer = &collection.emplace_back(42);
Run Code Online (Sandbox Code Playgroud)

  • `&(collection.back().第二)` (6认同)