8
私は次のものを思いついたが、かなりハッキリに見える。std :: vectorの最後に挿入された要素へのポインタを取得する方法は?
vector<int> collection;
collection.push_back(42);
int *pointer = &(*(collection.end()--));
最後に挿入された要素へのポインタを取得する簡単な方法はありますか?
私は次のものを思いついたが、かなりハッキリに見える。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を保持している場合、最後のペアの2番目の要素へのポインタを取得する方法を知っていますか? – danijar
'&(collection.back()。second)' –
@PeterWoodポインタを関数にバインドすると、不正な関数の例外が発生します。それはポインタと、したがって質問と関係がありますか?それ以外の場合は、トピックを混ぜないよう別の質問をします。 – danijar