Как получить указатель на последний вставленный элемент вектора std::?


Я придумал следующий обрезанный, но он выглядит довольно избитым.

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

Есть ли простой способ получить указатель на последний вставленный элемент?

1 8

1 ответ:

Для std::vector, back() возвращает ссылку на последний элемент, поэтому &collection.back() - это то, что вам нужно.

В C++17, emplace_back возвращает ссылку на новый элемент. Вы можете использовать его вместо push_back:

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