2013-06-19 6 views

Antwort

17

Für std::vector gibt back() einen Verweis auf das letzte Element zurück, also &collection.back() ist, was Sie brauchen.

In C++ 17, emplace_back wird ein Verweis auf das neue Element zurückgegeben. Sie könnten es anstelle von push_back verwenden:

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

Vielen Dank. Außerdem, wenn der Vektor 'std :: pair's enthält, wissen Sie, wie man einen Zeiger auf das zweite Element des letzten Paares bekommt? – danijar

+6

'& (collection.back(). Zweite)' –

+0

@PeterWood Gibt mir eine schlechte Funktion Ausnahme, wenn ich diesen Zeiger an eine Funktion binden. Könnte es mit dem Zeiger und damit mit der Frage zu tun haben? Ansonsten würde ich einen anderen bitten, Themen nicht zu verwechseln. – danijar

Verwandte Themen