8
我想出了以下剪切,但它看起來很hacky。如何獲取指向std :: vector的最後一個插入元素的指針?
vector<int> collection;
collection.push_back(42);
int *pointer = &(*(collection.end()--));
是否有一種簡單的方法來獲取指向最後插入的元素的指針?
我想出了以下剪切,但它看起來很hacky。如何獲取指向std :: vector的最後一個插入元素的指針?
vector<int> collection;
collection.push_back(42);
int *pointer = &(*(collection.end()--));
是否有一種簡單的方法來獲取指向最後插入的元素的指針?
對於std::vector
,back()
返回最後一個元素的引用,所以&collection.back()
是你所需要的。
在C++ 17中,emplace_back
返回對新元素的引用。你可以用它代替push_back
:
vector<int> collection;
int *pointer = &collection.emplace_back(42);
非常感謝。此外,如果向量持有'std :: pair's,你知道如何獲得最後一對的第二個元素的指針嗎? – danijar
'&(collection.back()。second)' –
@PeterWood如果我將該指針綁定到一個函數,會給我一個不好的函數異常。它可能與指針有關,因此與問題有關嗎?否則,我會要求另一個不要混淆主題。 – danijar