2013-06-19 10 views

risposta

17

Per std::vector, back() restituisce un riferimento all'ultimo elemento, quindi &collection.back() è quello che ti serve.

In C++ 17, emplace_back restituisce un riferimento al nuovo elemento. Potresti utilizzarlo invece di push_back:

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

Grazie mille. Inoltre, se il vettore contiene 'std :: pair's, sai come ottenere un puntatore al secondo elemento dell'ultima coppia? – danijar

+6

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

+0

@PeterWood Fornisce un'eccezione di funzione non valida se si associa il puntatore a una funzione. Potrebbe avere a che fare con il puntatore e quindi con la domanda? Altrimenti chiederei a un altro di non mescolare argomenti. – danijar

Problemi correlati